Страница 1 из 3
Слайдер для Noolite
Добавлено: Вс окт 27, 2013 3:09 pm
Scoot
Помогите разобраться плз.
Код: Выделить всё
safe_exec('"/usr/local/bin/noolite -api -set_ch 1 -"'.$params['VALUE']);
В чём ошибка ? Из консоли работает, а тут ноль эфекта
Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 4:27 pm
dmw
Прав на запуск не хватает. Дайте их через консоль:
chmod a+s /usr/local/bin/noolite
Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 5:11 pm
Scoot
dmw писал(а):Прав на запуск не хватает. Дайте их через консоль:
chmod a+s /usr/local/bin/noolite
С правами всё нормально.
ради теста сделал кнопу с
Код: Выделить всё
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -set_ch 1 50');
и это срабатывает
а вот это уже не работает
Код: Выделить всё
if ($params['VALUE']) {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -on_ch1');
} else {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -off_ch1');
}
Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 6:14 pm
LutsenkoDenis
Scoot писал(а):а вот это уже не работает
Код: Выделить всё
if ($params['VALUE']) {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -on_ch1');
} else {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -off_ch1');
}
Ну... вопервых не
a
Во вторых у тебя в приведённых примерах отличаются комманды. визуально.
Попробуй вот так:
Код: Выделить всё
$param = isset($params['VALUE']) ? ' -on_ch1' : ' -off_ch1';
$commandToRun = '/usr/bin/sudo /usr/local/bin/noolite -api' . $param;
echo exec($commandToRun);
И с пом. DebMes посмотри каждую строку. Если всё совпадёт с рабочим вариантом, то гуд.

Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 6:43 pm
Scoot
LutsenkoDenis писал(а):Scoot писал(а):а вот это уже не работает
Код: Выделить всё
if ($params['VALUE']) {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -on_ch1');
} else {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -off_ch1');
}
Ну... вопервых не
a
Во вторых у тебя в приведённых примерах отличаются комманды. визуально.
Попробуй вот так:
Код: Выделить всё
$param = isset($params['VALUE']) ? ' -on_ch1' : ' -off_ch1';
$commandToRun = '/usr/bin/sudo /usr/local/bin/noolite -api' . $param;
echo exec($commandToRun);
И с пом. DebMes посмотри каждую строку. Если всё совпадёт с рабочим вариантом, то гуд.

Отличаются только тем, что в первом примере устанавливается мощность, а во втором вкл/выкл.
Насчёт if ($params['VALUE']) взял с сайта
http://smartliving.ru/Main/Noolight (и под виндой это работало)
Попробовал ваш вариант. Не работает. На
http://127.0.0.1/objects/?script=OnOffLustra пишет Request: &script=OnOffLustra Running script: OnOffLustraCommand unknown
Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 7:23 pm
LutsenkoDenis
я не говорил что $params['VALUE'] не будет работать, просто с помощью isset правильней проверять переменные на их существование.
> Running script: OnOffLustraCommand unknown, как бы говорит о том что скрипт не понял что вы от него хотите. или не нашел что делать с параметром OnOffLustra
Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 8:00 pm
Scoot
LutsenkoDenis писал(а):я не говорил что $params['VALUE'] не будет работать, просто с помощью isset правильней проверять переменные на их существование.
> Running script: OnOffLustraCommand unknown, как бы говорит о том что скрипт не понял что вы от него хотите. или не нашел что делать с параметром OnOffLustra
Там и есть
Код: Выделить всё
if ($params['VALUE']) {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -on_ch1');
} else {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -off_ch1');
}
Я честно говоря уже не понимаю куда копать

Поял только, что в $params['VALUE']) (поскольку без него всё работает)
Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 9:24 pm
LutsenkoDenis
Scoot писал(а):
Там и есть
Код: Выделить всё
if ($params['VALUE']) {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -on_ch1');
} else {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -off_ch1');
}
Я честно говоря уже не понимаю куда копать

Поял только, что в $params['VALUE']) (поскольку без него всё работает)
Я конечно всё понимаю, но за весь разговор вы привели аж 4 разных примера кода который у вас то работает то нет.
А именно:
Код: Выделить всё
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -set_ch 1 50');
Код: Выделить всё
if ($params['VALUE']) {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -on_ch1');
} else {
echo exec('/usr/bin/sudo /usr/local/bin/noolite -api -off_ch1');
}
Код: Выделить всё
На http://127.0.0.1/objects/?script=OnOffLustra пишет Request: &script=OnOffLustra Running script: OnOffLustraCommand unknown
Код: Выделить всё
safe_exec('"/usr/local/bin/noolite -api -set_ch 1 -"'.$params['VALUE']);
Как они взаимосвязаны между собой понятно только вам и богу. Т.к. например с моей точки зрения это четыре практически разных кода которые между собой вообще никак не связаны.
В первом куске кода у вас все работает. Круто, но теперь нужно сравнить то что работает и то что не работает.
Во втором куске кода, там где $params['VALUE'], меняется только ключ. Т.е либо команда выполняется с ключом -on_ch1 или -off_ch1.
Как я уже говорил ранее, правильно в условии писать isset($params['VALUE']), т.к. php будет материться(варнингами) если переменная $params не объявлена ранее. На работоспособность это в нашем случае не влияет.
Исходя из этого:
1. сравниваем комманду из первого кусака кода и второго.
2. Смотрим есть ли у команды noolite, такой ключ как -on_ch1 или -off_ch1
Что делает пример из третьего куска кода для меня загадка.
В четвертом куске кода я бы посмотрел на то, какое значение получает $params['VALUE'] и какая команда в итоге получается.
Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 9:52 pm
ErmolenkoM
Доброй ночи!
Ошибка в МИНУСЕ перед значением яркости. В виндовом варианте он нужен, в линуксовом - нет.
У вас работает:
Код: Выделить всё
/usr/bin/sudo /usr/local/bin/noolite -api -set_ch 1 50
И не работает:
Код: Выделить всё
safe_exec('"/usr/local/bin/noolite -api -set_ch 1 -"'.$params['VALUE']);
Будет работать:
Код: Выделить всё
safe_exec('"/usr/local/bin/noolite -api -set_ch 1 "'.$params['VALUE']);
Если нужны драйвера для RGB , или приемника RX - обращайтесь.
Re: Слайдер для Noolite
Добавлено: Вс окт 27, 2013 9:56 pm
Scoot
Простите, что навёл панику. Разобрался.
Косяк весь был в CTRL+C и CTRL+V.
Скопировал из
http://smartliving.ru/Main/Noolight , а там нет пробелов . На сайте "-on_ch1" а должно быть "-on_ch 1"