Вот еще наковырял такой момент
В общем классе модуля по устройства xiaomi есть такой отрывок
Код: Выделить всё
if ($command=='report' && isset($message_data['data']['rgb']) && $message_data['model']=='gateway') {
$command='rgb';
$value=substr(dechex($message_data['data']['rgb']),-6);
}
В этот момент скрипт как раз выхватывает из данных полученных от шлюза код RGB цвета
Вот только в процессе он из полученного значения (типа 4b
ff00f9) забирает только последние 6 символов выкидывая остальное.
А как оказалось - очень зря )) Ведь именно в первой части до rgb цвета заложено значение яркости.
Оно десятеричное - от 2 (по крайней мере это минимум который дает выставить Mi Home, хоть и говорит что это 0) до 100
И чтобы получить его нужно дописать строку например
Код: Выделить всё
$brightness=hexdec(substr(dechex($message_data['data']['rgb']),0,-6));
(извиняюсь за корявый код, полу-сплю)
Что с этим дальше делать я честно говоря не знаю, т.к. беглым взглядом скрипт за раз берет только одно значение, а надо разбить его на два и я видел в других местах что это возможно, но я там пока не так глубоко ковырялся.
Ну и дальше во время отправки видимо чтобы код принимался просто в начало дописывается ff что обозначает полную яркость (даже более чем, ведь полная яркость 100 будет в hex = 64, но видимо хаб прощает такой выход за рамки)
Код: Выделить всё
if ($command['TITLE']=='rgb') {
$value=preg_replace('/^#/','',$value);
if (strlen($value)<8 && hexdec($value)>0) {
$value='ff'.$value;
}
$sendvalue=hexdec($value);
А хотелось бы яркость посылать отдельно
Т.к. я не очень глубоко знаком с тем как тут происходит обновление модулей и всякие организацонно-технические штуки, скажите что делать дальше с этой полезной информацией