Шаблон класса / Class Template

Новые релизы, обновления и т.п.

Модератор: immortal

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

Re: Шаблон класса / Class Template

Сообщение nick7zmail » Ср дек 20, 2017 8:25 am

plug - при зарядке, остальные от 0 до 100

fa-battery-empty
fa-battery-quarter
fa-battery-half
fa-battery-three-quarters
fa-battery-full

Ещё, думаю цветом подкрасить - больше 50/60 зеленая, меньше - желтая, и меньше 25 - красная. Думаю должно норм зайти))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Logrus
Сообщения: 1941
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 305 раз
Поблагодарили: 418 раз

Re: Шаблон класса / Class Template

Сообщение Logrus » Пт дек 22, 2017 8:22 am

nick7zmail писал(а):Ещё, думаю цветом подкрасить - больше 50/60 зеленая, меньше - желтая, и меньше 25 - красная. Думаю должно норм зайти))
буду ждать, сам не соображу, мне б вай-фай вместо единицы в зеленый, дом - хз, через геокодирование может портянку выдать (с версткой проблемы вылезти могут, можно ли это заранее устранить/предусмотреть?), почту б в красный - если больше нуля
хвастаюсь))).PNG
хвастаюсь))).PNG (9.47 КБ) 7211 просмотров
дальше думки про календарь и таски вывести 0_0

п.с. класс Rooms напрашивается на такое же
За это сообщение автора Logrus поблагодарил:
Samir77 (Пт июл 06, 2018 3:10 pm)
Рейтинг: 1.18%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2008 раз

Re: Шаблон класса / Class Template

Сообщение nick7zmail » Пт дек 22, 2017 9:13 pm

Да, про геокодирование были мысли, что длинная строка - искал варианты адаптивных абзацов, чтобы подстраивался текст...нифига интересного не нашел...
Вайфай подкрасить - в свойство закидываете green/red в зависимости от статуса (если модулем online hosts - пропиши выставление свойства в действиях при выходе в онлайн/оффлайн). А в тексте виджета (точнее в теге с иконкой вайфая) style="color:%Объект.свойство%"...вроде так))

По поводу класса Rooms
Изначальный виджет для пользователя строился "вокруг" картинки пользователя...это была его фишка)) Для Rooms эта стратегия не подходит...
Могу предложить вариант - найдите картинки в инете или нарисуйте, каким хотите видеть виджет комнаты...если мне понравится концепция - я сделаю его =).
За это сообщение автора nick7zmail поблагодарил:
vitosmaxim (Чт фев 22, 2018 11:21 am)
Рейтинг: 1.18%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2008 раз

Re: Шаблон класса / Class Template

Сообщение nick7zmail » Пт дек 22, 2017 9:35 pm

Лично я вижу это примерно так:
11.png
11.png (27.69 КБ) 7177 просмотров
(нарисовано в паинте моими кривыми ручками))
но блин...это тупо текст...это не интересно...хочется чего нить оригинального чтоль...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
kas5858
Сообщения: 360
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 99 раз
Поблагодарили: 52 раза

Re: Шаблон класса / Class Template

Сообщение kas5858 » Пт дек 22, 2017 11:34 pm

Почему картинки пропадают, через несколько секунд?
Вложения
Снимок1.PNG
Снимок1.PNG (10.55 КБ) 7163 просмотра
Снимок.PNG
Снимок.PNG (3.24 КБ) 7163 просмотра
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
kas5858
Сообщения: 360
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 99 раз
Поблагодарили: 52 раза

Re: Шаблон класса / Class Template

Сообщение kas5858 » Сб дек 23, 2017 1:47 am

С батареей тоже не могу понять что, 40% а значок три четверти.

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

$name = $this->getProperty('SayName');
$Batt = gg($name.'.BattLevel');
if ($Batt == 100) {
   $this->setProperty("BattPic", 'battery-full');
  } elseif ($Bat < 75) {   
   $this->setProperty("BattPic", 'battery-three-quarters'); 
  } elseif ($Bat < 50) {
   $this->setProperty("BattPic", 'battery-half');
  } elseif ($Bat < 25) {
   $this->setProperty("BattPic", 'battery-quarter');
  } elseif ($Bat == 0) {
   $this->setProperty("BattPic", 'battery-empty');
  } 
Вложения
33.PNG
33.PNG (10.05 КБ) 7144 просмотра
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
Аватара пользователя
xor
Сообщения: 1934
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 266 раз
Поблагодарили: 600 раз

Re: Шаблон класса / Class Template

Сообщение xor » Сб дек 23, 2017 2:06 am

У вас то $Batt, то $Bat, поправьте
kas5858
Сообщения: 360
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 99 раз
Поблагодарили: 52 раза

Re: Шаблон класса / Class Template

Сообщение kas5858 » Сб дек 23, 2017 2:59 am

xor писал(а):У вас то $Batt, то $Bat, поправьте
Спасибо, поправил! Проблема осталась.

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

$name = $this->getProperty('SayName');
$Batt = gg($name.'.BattLevel');
if ($Batt >= 0) {
   $this->setProperty("BattPic", 'battery-empty');
  } elseif ($Batt >= 25) {   
   $this->setProperty("BattPic", 'battery-quarter'); 
  } elseif ($Batt >= 50) {
   $this->setProperty("BattPic", 'battery-half');
  } elseif ($Batt >= 75) {
   $this->setProperty("BattPic", 'battery-three-quarters');
  } elseif ($Batt == 100) {
   $this->setProperty("BattPic", 'battery-full');
  }
Вложения
111.PNG
111.PNG (6.49 КБ) 7128 просмотров
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
kas5858
Сообщения: 360
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 99 раз
Поблагодарили: 52 раза

Re: Шаблон класса / Class Template

Сообщение kas5858 » Сб дек 23, 2017 3:08 am

Спасибо! Во так правильно

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

$name = $this->getProperty('SayName');
$Batt = gg($name.'.BattLevel');
if ($Batt == 100) {
   $this->setProperty("BattPic", 'battery-full');
  } elseif ($Batt >= 75) {   
   $this->setProperty("BattPic", 'battery-three-quarters'); 
  } elseif ($Batt >= 50) {
   $this->setProperty("BattPic", 'battery-half');
  } elseif ($Batt >= 25) {
   $this->setProperty("BattPic", 'battery-quarter');
  } elseif ($Batt >= 0) {
   $this->setProperty("BattPic", 'battery-empty');
  }
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
Logrus
Сообщения: 1941
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 305 раз
Поблагодарили: 418 раз

Re: Шаблон класса / Class Template

Сообщение Logrus » Сб дек 23, 2017 4:23 am

т.к. коннект не работает, добавлю, имхо тёзке полезно будет (не хвальба, наверное и ошибки присутствуют, может что и улучшить/изменить есть, с цветом еще не разбирался)
вообще, Никита, зело полезное дело сделал, я вот на это без описания и реального примера смотрел и ... ничего
конечно, главную красивость, "фишку" убрал (я аву ту не нашел, с шапки подключал, а текста много, обтекает не красиво), но как выше было сказано - это подключается и в сцены, и в дашборд, и в меню - за три клика!!!
СпойлерПоказать
шаблон отображения

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

<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> 
метод ChangeBattLevel в классе Users (тут с вилкой при зарядке) (связанное свойство BattLevel)

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

$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');
 }
} 
метод SetLocation в классе Users (связанное свойство Coordinates)

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

$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');
} 
метод setUpdatedText в классе Users (связанное свойство CoordinatesUpdated)

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

@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);
} 
может что и пропустил
За это сообщение автора Logrus поблагодарили (всего 2):
kas5858 (Сб дек 23, 2017 12:04 pm) • Samir77 (Вт май 15, 2018 12:59 pm)
Рейтинг: 2.35%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить