РЕКЛАМА НА ФОРУМХАУС Если накроется выключатель, то не будет работать одна точка освещения. Если накроется комп... Чувствуете разницу? Вы забыли про ПО.
Поэтому базовые вещи должны работать независимо: обогрев включаться и выключаться, свет - загораться, двери - открываться и закрываться вручную и т. д. А сложная логика, завязанная на комп - в этом плане как раз дешевые стандартные решения куда лучше дорогих и уникальных: сломаться может всё, но одно дело переткнуть шнуры между компами, и другое - заказать железяку, которую надо доставить и смонтировать взамен вышедшей из строя. А сейчас это все еще проще: переткнуть загрузочную флешку и USB-кабель...
Согласен на 100%. Так и делаю. А я не говорю о дорогих и уникальных. Скорее здесь вопросы к ПО (хотя стандартное железо от обычного домашнего компа я себе точно не поставлю).
А был особый выбор? Базовый функционал останется. Сдохнет Web интефейс, статистика и сценарии. А прикинуть вероятность данного события можете? Что больше 3 дней, это мы уже выяснили Я даже в одном таком проекте поучаствовал. Увидел что становиться с проектом написанном на чистом C после 10 лет "развития". А вообще эта область весьма консервативна и про Linux говорили - это же для серверов. Windows CE/Embedded до последнего времени было наше всё.
Проблема в том, что это работает нормально только для полностью автономных систем. А если система хоть как-то связана со "сложной логикой" вы получаете конфликт, который надо как-то разрешать и часто это разрешение приводит к различным костылям. Например свет - допустим у вас есть автономный выключатель, который должен включать и отключать освещение в комнате. А также центральный компьютер, который также управляет этим же освещением по определенным сценариям. Во первых центральный компьютер должен знать состояние выключателя, чтобы корректно отрабатывать сценарии, а не думать, что свет выключен, когда в реальности пользователь его включил с выключателя. Это первый нюанс. Второй нюанс - сценарии отказа. Допустим центральный контроллер сошел с ума и постоянно посылает команду на включение или отключение. Как сделать так, чтобы свет перешел в локальный режим и не реагировал на ошибочные команды из центра? То же самое с отоплением. Если "сложная логика" выдаст команду - "отключи мне отопление, лето" и накроется, локальный контроль не поможет. Придется добавлять дополнительную проверку таких команд. Не думаю, что обычный пользователь задумывается об этом, думая, что все должно работать автономно, когда это на самом деле не так. Чтобы не решать эти проблемы я для себя остановился на полной централизации - т. е все решения принимаются в одном месте. А решать вопросы надежности, когда у тебя только один элемент, который может выйти из строя, гораздо проще, так как сценарий отказа более-менее одинаков.
Один элемент, при отсутствии резервирования - это очень плохо. Вот сдох у меня AVR в генераторе - и что? Там схема-то - плюнуть и растереть, но залита эпоксидкой, без разрушения не починишь. В ближайших известных магазинах подходящего нет, только "на заказ", а на заказ я и сам заказать могу без проблем, вот только шел этот AVR 24 дня... Ну или варианты - рыскать по городу, по рынкам и барахолкам, или за потраченное на это время и средства купить новый генератор целиком. А все потому что резерва не было. Точно так же может сдохнуть и "центр принятия решений". Хорошо, если это стандартный комп, который можно заменить временно на свой ноут, а в течении дня поменять железо на месте. А если это фирменный контроллер, который тоже вот так в соседнем супермаркете не купишь? На тему конфликта - так все давно придумано: у пользователя (или локального автомата) - приоритет. Вплоть до физического отключения управляющего сигнала. Как система узнает, что выключатель на самом деле выключен, хотя она его включала - ну вот в соседней теме я как раз и спрашивал, как снять события с кучи датчиков - в том числе и для этого.
Это не хорошо, это необходимое условие, чтобы такое резервирование вообще было осуществимо на практике и занимало минимум времени. И естественно, такой компьютер должен быть под рукой или в горячем резерве. Поэтому никаких "фирменных контроллеров", а только стандартное железо с оптимальным соотношением цена/качество/надежность.И покупать надо сразу 2 штуки. Отключить локально можно все. Но как, например поступать с ситуацией, если пользователь включил свет и забыл его выключить? Т. е при переводе дома в режим энергосбережения или через удаленный доступ, центральный контроллер должен обойти локальную команду от выключателя и выключить свет.
Никак. Приоритет - у пользователя. Ситуация, когда забыли выключить свет и напрасно тратится энергия - менее критичный, чем когда пришли ночью, а света нет, и нужно с фонариками копаться в проводах, чтобы обойти "умную шайтан-машину", у которой кондеры опухли. Может быть ситуация, когда экономия критичнее - например, при питании от аккумуляторов - но в этом случае должна быть другая система безопасности: обесточивание при критичном разряде, либо по таймеру неактивности, либо с резервированием аккумуляторов на случай "а вот срочно надо - взял и переключил на резерв". То же самое, если это не свет, а электроотопление: другая система безопасности, по температуре, например. Локальный перегрев нагревателя, общий перегрев помещения, задымление и т. д. - вещи, которые при нормальных режимах эксплуатации не встречаются, и поэтому не конфликтуют с управлением, ну а если уж произошли - то рубить все к чертовой матери.
У меня решается так: Об изменении состояния локальный автомат сообщает центру. Если есть подтверждение от центра - локальный автомат реагирует на дальнейшие команды из центра. На команду из центра дает ответ и ожидает подтверждения. Если подтверждение есть - команда выполняется. . Прямо мысли читаете.
Как это должно работать, если выключатель и реле освещения будут представлены разными локальными автоматами - т. е. будут стоять отдельно, допустим в разных концах комнаты? И между ними не будет электрической связи, а только шина или беспроводка? Т. е. выключатель должен выдавать две команды - одну на реле (оно же должно получать команды напрямую), а другую - центру? Или одну? А получается, реле должно уметь распознавать источник команды - это выключатель или центр? А как быть, если я хочу, чтобы когда все работает штатно, мои выключатели не тупо клацали светильниками, а включали определенные сценарии, а если центр накрылся - просто включали свет?
Выключатель (у меня беспроводной) привязан к реле освещения и общается только с ним (к одному реле может быть привязано до 4 выключателей). Центр не видит команд от выключателя. Реле распознает, откуда команда (формат команд разный). В предыдущем посте "локальный автомат" - это реле освещения. Из центра (или вручную: на реле освещения есть дисплей и кнопки) можно настроить реле как угодно, в том числе и вариант, когда не получив от центра подтверждения, в дальнейшем реле просто включает-выключает свет (в реле 4 независимых канала - можно поиграть с яркостью, количеством точек освещения)
Что то костылями попахивает. Ардуино вполне может сливать/получать данные с домашнего вебсервера. Может даже сама выступать в качестве веб сервера. В чем смысл применения компьютера?
@DiaZoN, в получении событий Ладно, этот вопрос пока вроде решился. А вебсервер тут вовсе ни при чем. Да и возможности ардуины тут, кстати... не все, что показывает html - вебсервер.