Спасибо. Интересное решение. Очень красиво макрос написан. Снимаю шляпу.
Сама схема в моём случае не подойдёт, к сожалению, но я попробую использовать такой подход. Использовать XOR как триггер, замечательная идея! Ещё раз Спасибо.
Если вернуться к моей схеме, то я видимо в описании алгоритма был не точен. Попробую ещё раз.
Вот такая схема размещения:
LightChamb.GIF
Не абсолютно точно, но по сути.
Итак. Выключатель S1 первым шагом включает свет над порогом (выход Q1), потом, если кнопку продолжать удерживать, подключится Q2 (будет включен весь яркий свет), а затем и Q3+Q4 (декоративная подсветка).
Выключатель S2 же первым шагом включит свет в проходах (выход Q2), а затем будут последовательно подключены Q1 и Q3+Q4.
Время полного цикла 1,8 сек.
При включенных всех 4-х выходах, нажатие любого из выключателей сразу выключит яркий свет (Q1, Q2), а через 1,2 сек. выключится подсветка (Q3, Q4)
Таким образом есть возможность зонировать освещение. Например, когда ребёнок спит в своей комнате, свет у порога будет ему мешать, тогда выключателем S2 можно включить свет только в проходах. А иногда наоборот, нужен свет только над порогом.
Автоматическое включение Q1 и Q2 предусмотрено только в одном случае, когда заходишь в квартиру с улицы а дома темно и никого нет (неактивны все выходы и нет сигнала с датчика движения). Все другие автоматы включают только вспомогательное освещение (Q3+Q4 или только Q4). Не очень комфортно, когда яркий свет вспыхивает неожиданно
Днём и вечером при слабом освещении, по датчикам освещения и движения автоматически включаются Q3+Q4. Их света хватает чтоб ориентироваться в коридоре. Но, ночью в полной темноте, такой свет будет слишком ярок. Поэтому, введён ночной режим (переменная "Ночь"), когда после 23:00 по датчику движения будет включен только Q4 (2 LED светильника). Выключится свет либо сам через 2 минуты после последнего срабатывания датчика движения (переменная "MST"), либо от любого выключателя, но с 3-х секундной задержкой (чтобы успеть дойти до двери в спальню).
Иногда датчик движения тупит и тогда бывает полезна возможность ручного включения/выключения дежурного света (переменная "НСР").
Бывает так что ночь нужно отложить

Если текущее время позже 23:00, но ещё остались дела, нажав на 2 секунды любую кнопку можно на полчаса отложить режим "Ночь"
Если автоматика вконец достала, её можно полностью отключить. При удержании любой кнопки дольше 5 секунд, автоматические режимы будут заблокированы (переменная "Блк") и в качестве индикации моргнёт выход Q2. Теперь светом можно управлять только выключателями. Чтобы включить автоматику, нужно ещё раз нажать кнопку на 5 сек., пока не моргнёт Q1.
Если хозяева ушли не погасив свет, то всё что включилось автоматом, выключится через 30 минут. Свет включенный от выключателя выключится при любой смене цикла день/ночь (переменная "Reset") Так, например, если свет у порога остался включенный, а хозяева заснули (бывало

), свет на ночь отключится сам.
Может это кому то покажется излишним, спорить не буду. Но, это работает. И к такому быстро привыкаешь. И кажется, что так и надо.