Siorinex

<<< Back

Simple добавь цвета!

Простые устройства и цветовая градация датчиков.

Когда я вывел на сцену информеры для датчиков температуры и т.д. я задумался над простым вопросом: "Ну и как определить, это вообще норма или где?!"
Тогда решил сделать цветовую градацию в пределах "Простого датчика": норма это, больше или меньше нормы?!

Идём в Объекты->SDevices->SSensors->Свойства
Добавляем свойства:
color - Цвет индикации
minColor - Цвет при минимуме
maxColor - Цвет при максимуме
normalColor - Цвет при норме
Цвета используем в HEX значениях, типа FFFFFF (RRGGBB)

Идём в Методы SSensor, переписываем код для valueUpdated

/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSensors_valueUpdated.php');
/* end injection of {SDevices} */

$minColor  = $this->getProperty('minColor');
$maxColor  = $this->getProperty('maxColor');
$normColor = $this->getProperty('normalColor');

$Value    = $this->getProperty('value');
$minValue = $this->getProperty('minValue');
$maxValue = $this->getProperty('maxValue');

if ($Value<=$minValue)
  {
  sg($this->object_title.".color",$minColor);
  }
elseif ($Value>=$maxValue)
  {
  sg($this->object_title.".color",$maxColor);
  }
else
  {
  sg($this->object_title.".color",$normColor);
  }

Собственно, теперь при изменении значения датчика будет смотреть больше или меньше нормы и запихивать в Color цвет этого диапазона!

Теперь можно вставить вот как-то так...
<font color="%Sensor_temp01.color%">%Sensor_temp01.value%<span class="degree">&deg;</span>C</font>

Или привязать Color от какой-нить CO2 к RGB подсветке Сяоми...

P.S. Чисто служебная фишка, чтобы с матюками не править свойства всем:
В сценариях создаём новый, вписываем код:

// Задаём цвета вообще всем сенсорам
// Раскладка: 
// Меньше - синий (низкое, холодное)
// Норма - зеленый (комфорт)
// Больше - красный (высокое, жаркое)
$objects=getObjectsByClass("SSensors");
foreach($objects as $obj) {
 setGlobal($obj['TITLE'].".maxColor","ff0000");
 setGlobal($obj['TITLE'].".normalColor","00ff00");
 setGlobal($obj['TITLE'].".minColor","0000ff");
}

// Задаём цвета для General сенсоров - у меня там CO2 висит
// Раскладка: 
// Меньше - зеленый
// Норма - желтый
// Больше - красный
// Просто "норма" тут - это минимум, а в нормальном диапазоне - "Внимание!"
$objects=getObjectsByClass("SGeneralSensors");
foreach($objects as $obj) {
 setGlobal($obj['TITLE'].".maxColor","ff0000");
 setGlobal($obj['TITLE'].".normalColor","ffff00");
 setGlobal($obj['TITLE'].".minColor","00ff00");
}

// Задаём цвета для сенсоров влажности
// Раскладка: 
// Меньше - желтый (сухо)
// Норма - зеленый
// Больше - синий (влажно)
$objects=getObjectsByClass("SHumSensors");
foreach($objects as $obj) {
 setGlobal($obj['TITLE'].".maxColor","0000ff");
 setGlobal($obj['TITLE'].".normalColor","00ff00");
 setGlobal($obj['TITLE'].".minColor","ffff00");
}

Значения границ:
Температура - все индивидуально, но я выставил чисто себе нормальный диапазон сейчас от 24 до 28.

Влажность:
40% - низ (сухость во рту при ней)
60% - верх (выше этой точки растет плесень ближе к 70%!)

CO2 (ppm):
600 - низ (400 - минимум для города. До 600 вам будет комфортно дышать)
900 - верх (выше 900 уже воздух хуже. Хреново вообще будет чуть не к паре тысяч)

Давление (мм рт.ст.) - тоже индивидуально и зависит от времени года, высоты над уровнем моря и т.д.
Для меня в Москве:
Низкое - ниже 740
Высокое - выше 760

Discuss (0) (9)

See also:
2018-09-05 Я твоя Ютуб шатал!
2018-09-02 "Свечение" для приборов, торшер с двумя лампами и дверь "с памятью"
2018-08-28 Полноэкранный режим для сцены без Рута и т.д.

Москва, Россия