mirror of
https://github.com/CyanoFresh/SmartHomePHP.git
synced 2026-03-13 21:36:51 +01:00
Fixes RGB
This commit is contained in:
@@ -14,8 +14,8 @@ $params = [
|
||||
],
|
||||
'items' => [
|
||||
'rgb' => [
|
||||
'fade-time' => 10000,
|
||||
'color-time' => 5000,
|
||||
'fade-time' => 3000,
|
||||
'color-time' => 3000,
|
||||
'red' => 0,
|
||||
'green' => 150,
|
||||
'blue' => 150,
|
||||
|
||||
@@ -23,6 +23,7 @@ use yii\base\InvalidParamException;
|
||||
use yii\base\NotSupportedException;
|
||||
use yii\helpers\ArrayHelper;
|
||||
use yii\helpers\Json;
|
||||
use yii\helpers\VarDumper;
|
||||
use yii\web\BadRequestHttpException;
|
||||
use yii\web\ForbiddenHttpException;
|
||||
use yii\web\NotFoundHttpException;
|
||||
@@ -414,6 +415,36 @@ class CoreServer implements MessageComponentInterface
|
||||
// Save to history
|
||||
$this->logItemValue($item, $value);
|
||||
|
||||
break;
|
||||
case 'values':
|
||||
unset($data['type']);
|
||||
|
||||
foreach ($data as $pin => $value) {
|
||||
$item = Item::findOne([
|
||||
'board_id' => $board->id,
|
||||
'pin' => $pin,
|
||||
]);
|
||||
|
||||
if (!$item) {
|
||||
return $this->log('Trying to use unknown item');
|
||||
}
|
||||
|
||||
// Trig event
|
||||
$this->triggerItemValue($item, $value);
|
||||
|
||||
$value = $this->saveItemValue($item->id, $value, $item->type);
|
||||
|
||||
$this->sendUsers([
|
||||
'type' => 'value',
|
||||
'item_id' => $item->id,
|
||||
'value_type' => $item->widget->type,
|
||||
'value' => $value,
|
||||
]);
|
||||
|
||||
// Save to history
|
||||
$this->logItemValue($item, $value);
|
||||
}
|
||||
|
||||
break;
|
||||
case 'rgb':
|
||||
$itemId = (integer)$data['item_id'];
|
||||
@@ -430,15 +461,6 @@ class CoreServer implements MessageComponentInterface
|
||||
throw new NotFoundHttpException('Item does not exist');
|
||||
}
|
||||
|
||||
if (!in_array($mode, Item::getRGBModesArray())) {
|
||||
$this->log("Board [{$board->id}] tried to use unknown RGB mode");
|
||||
throw new InvalidParamException('Unknown RGB mode');
|
||||
}
|
||||
|
||||
if ($fadeTime < 0) {
|
||||
$fadeTime = 0;
|
||||
}
|
||||
|
||||
$commonParameters = [
|
||||
'type' => 'rgb',
|
||||
'item_id' => $item->id,
|
||||
@@ -475,38 +497,9 @@ class CoreServer implements MessageComponentInterface
|
||||
$this->sendUsers($parameters);
|
||||
|
||||
$this->logItemValue($item, serialize($parameters));
|
||||
VarDumper::dump($parameters);
|
||||
$this->saveItemValue($item->id, $parameters, $item->type);
|
||||
|
||||
break;
|
||||
case 'values':
|
||||
unset($data['type']);
|
||||
|
||||
foreach ($data as $pin => $value) {
|
||||
$item = Item::findOne([
|
||||
'board_id' => $board->id,
|
||||
'pin' => $pin,
|
||||
]);
|
||||
|
||||
if (!$item) {
|
||||
return $this->log('Trying to use unknown item');
|
||||
}
|
||||
|
||||
// Trig event
|
||||
$this->triggerItemValue($item, $value);
|
||||
|
||||
$value = $this->saveItemValue($item->id, $value, $item->type);
|
||||
|
||||
$this->sendUsers([
|
||||
'type' => 'value',
|
||||
'item_id' => $item->id,
|
||||
'value_type' => $item->widget->type,
|
||||
'value' => $value,
|
||||
]);
|
||||
|
||||
// Save to history
|
||||
$this->logItemValue($item, $value);
|
||||
}
|
||||
|
||||
break;
|
||||
case 'pong':
|
||||
$this->log("Pong from board [$board->id]");
|
||||
@@ -953,10 +946,6 @@ class CoreServer implements MessageComponentInterface
|
||||
return;
|
||||
}
|
||||
|
||||
if ($item->type === Item::TYPE_RGB) {
|
||||
$value = implode(',', $value);
|
||||
}
|
||||
|
||||
$model = new History();
|
||||
$model->type = History::TYPE_ITEM_VALUE;
|
||||
$model->item_id = $item->id;
|
||||
|
||||
@@ -50,7 +50,7 @@ $(document).ready(function () {
|
||||
|
||||
var $li = $(this);
|
||||
|
||||
$select.val($li.data('value'));
|
||||
$select.val($li.data('value')).change();
|
||||
$widget.find('.md-select-selected-value').html($li.text());
|
||||
|
||||
$li.addClass('selected')
|
||||
@@ -67,7 +67,7 @@ $(document).ready(function () {
|
||||
$ulDrop.scrollTop(liTop + $ulDrop[0].scrollTop);
|
||||
});
|
||||
|
||||
$('body').click(function (e) {
|
||||
$('body').click(function () {
|
||||
$ulDrop.removeClass('show');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -96,7 +96,10 @@ function updateRGB(itemId, data) {
|
||||
itemValues[itemId] = data;
|
||||
|
||||
if (data.mode == 'static' || data.mode == 'fade') {
|
||||
$('.panel-item-rgb[data-item-id="' + itemId + '"]').attr('style', 'background: rgb(' + data.red + ',' + data.green + ',' + data.blue + ')');
|
||||
var $panelItem = $('.panel-item-rgb[data-item-id="' + itemId + '"]');
|
||||
|
||||
$panelItem.css('background-color', 'rgb(' + data.red + ',' + data.green + ',' + data.blue + ')');
|
||||
$panelItem.css('color', textColorDepOnBackground(data.red, data.green, data.blue));
|
||||
}
|
||||
|
||||
$('#rgb-widget-wave-fade-time').val(data.fade_time);
|
||||
@@ -182,6 +185,19 @@ function updateItemValue(id, type, value, value_type) {
|
||||
}
|
||||
}
|
||||
|
||||
function textColorDepOnBackground(red, green, blue) {
|
||||
var brightness = Math.round((red * 299 + green * 587 + blue * 114) / 1000);
|
||||
var textColor;
|
||||
|
||||
if (brightness > 125) {
|
||||
textColor = 'black';
|
||||
} else {
|
||||
textColor = 'white';
|
||||
}
|
||||
|
||||
return textColor;
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
$('.panel-item-switch').click(function (e) {
|
||||
e.preventDefault();
|
||||
@@ -233,7 +249,7 @@ $(document).ready(function () {
|
||||
$colorPicker.spectrum('set', 'rgb(' + savedItemValue['red'] + ',' + savedItemValue['green'] + ',' + savedItemValue['blue'] + ')');
|
||||
}
|
||||
|
||||
// Set mode and variables
|
||||
// Open mode tabs and set variables
|
||||
if (savedItemValue.mode == 'static') {
|
||||
$('.rgb-widget-mode-static').tab('show');
|
||||
} else if (savedItemValue.mode == 'wave') {
|
||||
@@ -261,8 +277,11 @@ $(document).ready(function () {
|
||||
var $this = $(this);
|
||||
var itemId = $this.data('item-id');
|
||||
|
||||
$('.panel-item-rgb[data-item-id="' + itemId + '"]')
|
||||
.attr('style', 'background-color: rgb(' + red + ',' + green + ',' + blue + ')');
|
||||
var $panelItem = $('.panel-item-rgb[data-item-id="' + itemId + '"]');
|
||||
|
||||
// Update text color
|
||||
$panelItem.css('background-color', 'rgb(' + red + ',' + green + ',' + blue + ')');
|
||||
$panelItem.css('color', textColorDepOnBackground(red, green, blue));
|
||||
|
||||
var modeId = $this.parents('.tab-pane').attr('id');
|
||||
|
||||
@@ -309,26 +328,16 @@ $(document).ready(function () {
|
||||
var green = Math.round(color._g);
|
||||
var blue = Math.round(color._b);
|
||||
|
||||
if (savedItemValue != null) {
|
||||
send({
|
||||
"type": "rgb",
|
||||
"item_id": item_id,
|
||||
"mode": "fade",
|
||||
"fade_time": parseInt($('#rgb-widget-fade-fade-time').val()),
|
||||
"color_time": parseInt($('#rgb-widget-fade-color-time').val()),
|
||||
"red": red,
|
||||
"green": green,
|
||||
"blue": blue
|
||||
});
|
||||
} else {
|
||||
send({
|
||||
"type": "rgb",
|
||||
"item_id": item_id,
|
||||
"mode": "fade",
|
||||
"fade_time": parseInt($('#rgb-widget-fade-fade-time').val()),
|
||||
"color_time": parseInt($('#rgb-widget-fade-color-time').val())
|
||||
});
|
||||
}
|
||||
send({
|
||||
"type": "rgb",
|
||||
"item_id": item_id,
|
||||
"mode": "fade",
|
||||
"fade_time": parseInt($('#rgb-widget-fade-fade-time').val()),
|
||||
"color_time": parseInt($('#rgb-widget-fade-color-time').val()),
|
||||
"red": red,
|
||||
"green": green,
|
||||
"blue": blue
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -373,7 +382,10 @@ $(document).ready(function () {
|
||||
"item_id": item_id,
|
||||
"mode": "fade",
|
||||
"fade_time": parseInt($('#rgb-widget-fade-fade-time').val()),
|
||||
"color_time": parseInt($('#rgb-widget-fade-color-time').val())
|
||||
"color_time": parseInt($('#rgb-widget-fade-color-time').val()),
|
||||
"red": red,
|
||||
"green": green,
|
||||
"blue": blue
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user