Stepan очень класная реализация. Хочу добавить свои соображения по алгоритмике, некоторые устройства - например дистанционный включатель можно облегчить сделав его специализированным универсальным включателем света, многоканальным датчиком тока, электронной системой датчика протечки и т д. Потом специализированные девайсы обединить с помощью ПК или МК. Сейчас поясню - если взять за основу Ваши устройства вполне можно реализовать следующий алгоритм. Коснемся управлением светом для примера.
Belerafon
затронул эту тему. Думаю что проблемму 5 выключателей можно обойти в случае со светом подобным образом.
Восемь лет пользуюсь вот такой схемой управления света в спальне. В чем суть. Красные квадратики выключатели типа "кнопка дверного звонка " . Их у меня три. И два светильника в изголовье. Как это все работает. Реализовано 4 сцены. Все выключено, Все включено, горит справа, горит слева. Когда сменил пружинки в выключателях на мягкие стало очень удобно. Главный плюс что можно управлять всем светом с любой из трех точек. Все очень просто. Реализовано на шаговом реле Finder. Последовательные нажатия меняют сцены.
Это реализация раз.
http://photofile.ru/users/nslnsl/960653 ... ull_image/
Реализация два.
Сейчас света прибавилось, сцен реализовать можно больше, да и микроэлектроника рулит – просто интересно.
Появилась задумка заменить реле на микросхемы – основа сдвиговые регистры. Ток потребляемый источниками небольшой, так что думаю обойтись без мощных ключей, хотя это обсуждаемо. В Proteus я смоделировал схему такого своеобразного шагового реле ( самое смешное , что может оказаться что подобное уже есть на одной микросхеме, если кто знает проинформируйте пожалуйста). Вот схема из Proteusa.
http://photofile.ru/users/nslnsl/960653 ... ull_image/
Как это работает? Так же как и шаговое реле – последовательно нажимаем на кнопочку и последовательно включаются светодиоды. Светодиоды потом заменим на ключ или что там придумается позже. Причем срабатывает все так 1 вкл, 2 вкл 1 выкл, 3 вкл-2 выкл, и т д. по кругу. Т.к один выход используем для второго сдвигового регистра то образуется момент когда ни один светодиод не работает – сцена темно. Далее по кругу. Переключатели я делаю для того чтобы можно было конфигурировать с 4 до 8 сцен. Т.е грубо говоря отключить лишние если не используются. Формирователь импульса от дребезга контактов, резистор и конденсатор для Протеуса, в реале не нужны сработает и так. Смонтировать в макет еще не успел, т.ч. подсказать что получилось, что нет пока не могу. Да и задумал я другой вариант – на МК. Почему – сейчас попробую рассказать.
Активно пытаясь по возможности автоматизировать свой дом, мне для реализации пары идей требуется что бы добавился интеллект этому “шаговому реле”.
Пользуясь уроками Spirit я собрал в Протеусе модельку и немного изменил прошивку ( правда делаю я это методом втыка, т.к пока в программировании на С ориентируюсь слабо.) Но суть уловить можно. Вот собственно схема. Внизу приложена моделька и исходники.
http://photofile.ru/users/nslnsl/960653 ... ull_image/
Я пока не совсе понял как происходит адресное обращение у Вас Stepan, ассемблер мне не знаком, но хотелось бы уточнить позволит ли он реализовать следующие функции
1.Ну собственно переключение – простое последовательное. По одному. У меня уже реализовано.
2.Добавить вторую кнопку – выключить все. В случае выключения запомнить последнюю сцену. Включить – включается с запомненной сцены. Выключить реализовал, а запомнить сцену надо разобратся.
3.Реализовать – конфигурирование МК на количество сцен – помните, как в предыдущем варианте я это делал переключателями. Если это реализовать на джамперах или чем то смонтированном радом с МК не страшно.
4.Хотелось бы реализовать – подать сигнал на RXD и включить нужную сцену. Т.е точно попасть по адресу. Но приоритет меньший чем ручное управление.
5.И последнее крайне важно что бы устройство выдавало состояние какая ножка в данный момент включена. Позволит ли это сделать Ваш протокол? Хотя понятно что например передавая последовательные нажатия на кнопку моего устройства ( естественно заменив ее ключем) можно использовать предлагаемые в статье устройства более эффективно. Получилось длинно, но никогда не думал как трудно коротко написать что бы было понятно и самому.

И последнне Вы не думали над тем что бы всю поступающую информацию о состоянии оконечных устройств писать в базу, а уж потом брать с нее требуемые состояния, или пользоватся ими для контроля. Решится сразу вопрос и с Веб и с интерфейсом гораздо проще. Ну на мой взгляд.