Управление светом в доме

Добрый вечер, создал правило управления светом с выключателем, вроде все супер но теперь с включенным выключателем не могу выключить с хк, :thinking:помогите пожалуйста
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 с датчиком движения
Хочу что бы свет включался при появлении движения и если движения нет свет гас
но есть условие что при включении выключателя правило по движению переставало работать, ну и главное что бы можно было управлять из сх

Соответственно ветвлений два: если включен выключатель - работать по нему.
сюда же добавить второй, виртуальный выключатель,
То есть - если включен виртуальный выключатель - - включить, датчик движения не учитывать.

Если выключены оба - работать по датчику движения.
Да, включение сразу канала реле - не очень удачный вариант, так как непонятно что его включило.
То есть проще всего, и логичней - добавить виртуальное устройство с переключателем и уже им управлять из внешней системы.

спасибо попробую отпишусь

Рекомендации:

  1. Проверить: К1 должен быть отвязан от управление через Input 1.
  2. Не увидел скрипт таймера отключения света по отсутствию движения.
  3. Напишите 2 отдельных whenchange, один на движение, другой на вход.
  • при движении проверяйте состояние входа, если выключатель нажат, то сбрасываем таймер и не включаем свет, иначе вкл свет и запуск таймера
  • при изменении состояния выелючаиеля повторяем его состояние на К1.

:+1:спасибо

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.