Добрый вечер, создал правило управления светом с выключателем, вроде все супер но теперь с включенным выключателем не могу выключить с хк,
помогите пожалуйста
var isMotion = true;
defineRule(“Свет столярка”,
{
whenChanged: [“wb-mr6c_18/K1”,“wb-msw-v3_121/Max Motion”,“wb-mr6c_18/Input 1”],
then: function (newValue, devName, cellName) {
var Motio = dev["wb-msw-v3_121/Max Motion"];
var knopka = dev["wb-mr6c_18/Input 1"];
if (knopka == 0)
{
if (Motio >= 150)
{
if (!isMotion)
{
dev["wb-mr6c_18"]["K1"] = true;
log("свет включили по движению");
isMotion = true;
}
}
else
{
if (Motio <= 150)
{
if (isMotion)
{
dev["wb-mr6c_18"]["K1"] = false;
log("свет выключили без движения");
isMotion = false;
}
}
}
}
else
{
if (knopka == 1)
{
if (isMotion)
{
dev["wb-mr6c_18"]["K1"] = true;
log("свет включили по выключателю");
isMotion = true;
}
}
}
}
});
Добрый день.
Насколько вижу - правило написано без ошибок.
Разве что дополнительная проверка if (knopka == 1) ни к чему.
if (knopka == 0)
{
//
}
else
{
if (knopka == 1)
{
//
}
}
А зачемм в правиле участвует “wb-mr6c_18/K1”? Чтобы правило срабатывало именно при изменении чсостояния из внешнего (HK) сервиса и отменяло его действие?
к1 это реле к которому подключены светильники
Как его значение используется? Ну и - проверьте как сработает правило если его переключить?
вы же смотрели правило там все написано что оно делает
если к1 включить то светильник включиться
Если включить из интерфейса - то включается. Хорошо. А тогда в чем проблема с HK? не переключается? А что пишется в mqtt?
правило работает нормально, если выключатель (кнопка=0) не включенна физически, то управление из хк работает, а вот если кнопка =1 и выключать из хк, то происходит автоматическое включение света(долисекунды) так как в правиле условие что если кнопка=1 свет должен включаться
а нужно что бы из хк выключался свет не зависимо от условий правила
Ну да, я именно про это и говорил - что при изменении состояния канала правило снова выполняется.
Так как нет (простых) способов определить источник переключения - нужно переписать правило. Ну или добавить укавлиние опосредованное, переключением виртуального устройства.
помогите подправить правило?
А как подправить? Помочь - могу, например исправить какие-то ошибки, но что хотите изменить?
и так сначала:
есть мр6 на нем висит на к1 свет и выключатель с фиксацией
есть msw с датчиком движения
Хочу что бы свет включался при появлении движения и если движения нет свет гас
но есть условие что при включении выключателя правило по движению переставало работать, ну и главное что бы можно было управлять из сх
Соответственно ветвлений два: если включен выключатель - работать по нему.
сюда же добавить второй, виртуальный выключатель,
То есть - если включен виртуальный выключатель - - включить, датчик движения не учитывать.
Если выключены оба - работать по датчику движения.
Да, включение сразу канала реле - не очень удачный вариант, так как непонятно что его включило.
То есть проще всего, и логичней - добавить виртуальное устройство с переключателем и уже им управлять из внешней системы.
спасибо попробую отпишусь