Манифест разработчика умных систем: 15 принципов

    Мы предлагаем вашему вниманию статью Владислава Зайцева (vvzvlad), приглашенного гостя нашего блога. Владислав давно занимается темой «умных домов», и обобщив свой опыт, он предлагает следующие основные принципы дизайна такого рода систем.

    Сегодня я хочу поговорить с вами об «умных» домах в частности и IoT-устройствах в целом. Но это будет не обычная статья: тут не будет железок, ссылок на производителей, кусков кода и репозитариев на гитхабе. Сегодня мы будем обсуждать нечто более высокоуровневое — принципы, по которым организуются «умные» системы.

    image

    Продолжая читать статью, вы соглашаетесь с тем, что вас устраивает следующий disclaimer.

    Собственно, сам disclaimer
    1. Все эти пункты касаются только потребительских IoT-систем (читай «умных домов»). Тех, что человек может купить в магазине и установить без привлечения специализированных инсталляторов/интеграторов.
    2. Часть этих принципов не применима к промышленным системам (там свои требования и принципы), а также, к системам, где есть отделённые от пользователя эксплуатанты (например, умный дом, который устанавливается и обслуживается специально обученными людьми).

      Также часть принципов не применима к системам уровня «игрушка для гиков», к самодельным и open-source системам, у которых нет единого product owner.
    3. И, конечно, всё написанное ниже — это исключительно моё мнение, основанное на моём многолетнем опыте. Вы имеете право не соглашаться с ним.



    Умный дом — это система, которая берёт на себя часть повседневных забот человека. Отсюда следует первый и самый основной принцип:

    1. Умный дом должен облегчать жизнь и делать её проще.


    Умный дом — система для жизни, а не игрушка для гиков. Любые системы, пользоваться1 которыми сложнее, чем обычными выключателями — не умный дом.

    Любая новинка должна тестироваться на соответствие этому принципу. Если она не облегчает жизнь, и вы не понимаете, как сделать так, чтобы она облегчала, ей не место в умном доме. Вы можете попробовать представить её как обучающую систему.


    Второй по важности принцип касается того, как пользователь взаимодействует с системой:

    2. Хороший пользовательский опыт важнее функциональности.


    Грош цена крутому инструменту, которым нельзя нормально пользоваться. Удобные и надежные устройства с ограниченным функционалом имеют больше шансов на успех, чем сложные изделия на «все случаи жизни».

    2.1. Удобные интерфейсы лучше кастомизируемости.


    Не понимаете, как сохранить и кучу функций, и простой интерфейс? Запихиваете все функции подряд в надежде, что пользователь сам разберётся, что ему надо? Вон из профессии!
    Не понимаете, как совместить удобство и кучу настроек? Пожертвуйте настройками. Любая функциональность будет круче, чем обычный выключатель, а вот излишняя сложность легко заставит пользователя вернуться к выключателю.

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

    2.2. Качество реализованных функций важнее их количества.


    Мало надежного, но проверенного функционала лучше, чем много, но работающего кое-как.
    Один из механизмов, закреплённых в человеческой психике эволюцией — более активная реакция на отрицательные стимулы. Отрицательные факторы важнее положительных: пропустить приближение опасного хищника гораздо страшнее, чем не заметить и не съесть вкусный фрукт на дереве. Если в вашей системе нет каких-то функций, это не страшно, это всего лишь отсутствие положительного стимула. А вот функция существующая, но работающая плохо — это отрицательный стимул: он запоминается легче и помнится дольше.

    2.3. Внедрение системы не должно снижать привычную скорость работы.


    Задержки недопустимы, так как ухудшают пользовательский опыт. Это тоже отрицательный стимул. Если человек не замечает задержки2 между щелчком обычного выключателя и включением света, он не должен заметить её и в вашей системе.

    Современное железо работает с очень высокой скоростью. Нет проблемы достичь частот в десятки мегагерц на микроконтроллерах и как минимум десятков килобит в секунду даже по радиоканалу. Если вы в этих условиях не можете сделать систему, задержек в работе которой пользователь не ощущает — вон из профессии!

    2.4. Система не должна ломать уже сформированные привычки пользователя.


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

    Нельзя пытаться насильно менять эти привычки. Предлагать — можно. Заставлять — нельзя.
    Нельзя сказать пользователю «теперь ты будешь включать свет с телефона — это стильно, модно, молодёжно». Это нарушение данного принципа и нескольких других.

    А что же делать?

    2.5. Система должна приносить новый опыт, а не пытаться заменять старый.


    Если вы считаете, что ваш способ управления системами дома лучше, чем старый, предложите его пользователю. Если это действительно удобнее, он сам выберет новый (да, разным людям подходят разные способы). Всё, что вы можете (и должны) сделать — предоставить ему выбор.



    Важное место в умном доме занимает логика работы. То, что определяет, по каким правилам этот умный дом будет работать. И следующий важный принцип как раз об этом:

    3. Пользователя нельзя ограничивать в доступной ему логике.


    Если пользователь хочет при повышении температуры в комнате включать чайник3, дайте ему возможность делать это. Должна быть исключена ситуация, когда для совершения определенного действия нет ни физических, ни программных ограничений, но оно недоступно, потому что разработчик подумал «это никому никогда не потребуется».

    3.1. Как можно проще: для написания логики не должно требоваться специальных знаний об устройстве системы


    Если у вас есть устройства разных версий с разными протоколами, позаботьтесь о том, чтобы пользователь об этом знал только в реально необходимых случаях, когда без этого не обойтись. Если вы можете избавить пользователя от получения специальных знаний, пусть и ценой времени разработчиков, сделайте это. Разработчик потратит два дня, а тысяча пользователей по часу. Сорок восемь часов против тысячи? Ответ очевиден.

    Как тебе спится, Джон — серийный программист?

    3.2. Устройства с одинаковыми функциями должны управляться одинаково.


    Пользователь не обязан знать, что клапан для воды управляется одними командами, а кран — другими. Если и тот и другой управляют водой в трубе, то они оба должны иметь на пользовательском уровне одинаковые интерфейсы: «открыть воду» и «закрыть воду».



    Мы все живём в физическом мире. Тело и мозг человека сформированы для взаимодействия с физическими предметами. Отсюда принцип:

    4. Физические устройства управления лучше виртуальных.


    Любые, даже самые лучшие приложения на телефоне с виртуальными кнопками управления проигрывают обычному физическому выключателю в нужном месте.

    Другое дело, что выключатель должен размещаться именно в нужном месте. Отсюда ещё одно важное правило:

    5. Радио лучше проводов.


    Проводные системы обладают надёжностью, но только радиосвязь позволяет установить новый выключатель или реле для светильника не делая ремонт заново. И перенести, если вам наскучило предыдущее место. Но у этого принципа есть и свои исключения:

    5.1. Плохое радио хуже проводов.


    Хорошее радио — это такое, которое позволяет не задумываться о том, на каком расстоянии от центрального контроллера надо размещать устройства. Хорошее радио — это протоколы с mesh-сетью: ZigBee, Z-Wave, 6LoWPAN и так далее.

    Все остальные варианты — это плохое радио. Wi-Fi — плохое радио. Самодельные протоколы отдельных фирм (их знают самодельщики под названием «433 МГц», хотя они могут быть и на других частотах, и очень сильно отличаться друг от друга) — плохое радио.

    Wi-Fi плох тем, что на его основе невозможно сделать полноценные «спящие» устройства, и сложно сделать автоматическую настройку, а также проблемами совместимости с другими Wi-Fi устройствами в доме. Простые самодельные протоколы плохи тем, что зачастую не содержат в себе ни контроля доставки, ни шифрования, ни доступных спецификаций. Ни то, ни другое не имеет mesh-маршрутизации, что часто оборачивается проблемами вида «а я не могу в тот угол выключатель поставить — слишком далеко от передатчика».



    Нельзя сделать систему со стопроцентной надёжностью и без необходимости обслуживания. Устройства ломаются, в сети возникают скачки напряжения, из квартиры соседей сверху льётся вода, батарейки садятся, пластик трескается, ребёнок выливает на светильник суп и так далее. Но:

    6. Ремонт, обновление, обслуживание и диагностика должны быть простыми.


    В B2B всё понятно: есть пользователь, есть разработчик, а есть эксплуатант — человек или организация, которые знают, как устроена система, и могут с ней работать на профессиональном уровне. Никто не требует от бухгалтера знания программирования под 1C, этим занимается специальный человек. И никто не требует от человека, который арендует офис, понимания, как в нём работает вентиляция — его дело сказать: «У нас в офисе душно».

    Грамотное решение о покупке системы основывается на расчете совокупной стоимости владения, которая складывается из цены системы и расходов на ее эксплуатацию.
    В системах, которые человек использует у себя дома, всё сложнее. Там эксплуатант и пользователь — одно и то же лицо, и вдобавок зачастую не обладающее необходимыми знаниями о системе. К сожалению, таковы ограничения потребительского рынка. Отсюда следующие принципы:

    6.1. Устройство должно либо работать, либо не работать. Третьего не дано.


    Вероятность работы, частичная работа и неправильная работа недопустимы. Нельзя допускать ситуаций, в которых ваше устройство работает через раз или не работает один раз из десяти. Если вы считаете, что ваше устройство функционирует неправильно, стоит отключить его вообще — для безопасности и для сохранения положительного пользовательского опыта. Заменять устройство неприятно, но лучше заставить пользователя заменить его, чем формировать мнение «работает через раз» о системе. Система должна быть в строго определённом состоянии: если она сломалась, значит, она не работает, если она не сломалась, значит, она работает.

    Если вы твёрдо уверены, что деградация функциональности допустима, всё равно стоит предупредить об этом пользователя внятным сообщением: «Обнаружен выход из строя второго канала диммера. Необходимо заменить диммер. Продолжить использовать первый канал диммера? Да/Нет»

    6.2. Заменить сломанное устройство должно быть легко.


    Система должна быть модульной. Если у пользователя ломается датчик, ему должно быть необходимо заменить только датчик. Нельзя требовать менять реле вместе с пультом управления, потому что оно, видите ли, привязывается к нему на этапе производства.

    Нельзя даже сказать «новый датчик может установить только наш специалист», потому что, очевидно, с развитием вашей системы специалистов не хватит на миллионы возможных пользователей, а значит, в какой-то момент начнутся проблемы. Конечно, пользователь не будет ремонтировать устройства сам, но при поломке он должен иметь возможность их заменить.

    6.3. Понятные сообщения.


    Если что-то пошло не так, пользователь должен знать об этом, и знать, что именно пошло не так.
    Нельзя сказать пользователю «Ошибка #45», подразумевая, что это сообщение поймёт только сотрудник техподдержки. Ему надо сказать: «Устройство не отвечает. Попробуйте перезагрузить его, привязать заново или обратиться в сервис. Ошибка #45».

    Нельзя обнаружить, что устройство не отвечает (если у вас есть возможность это сделать), и не сказать об этом пользователю. Получать сообщение о проблемах не очень приятно, но гораздо неприятнее понять, что устройство не работает уже неделю, именно в тот момент, когда оно вам срочно понадобилось.

    6.4. Отсутствие лишней информации в сообщениях.


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

    Не надо показывать пользователю сотню однотипных сообщений: «связь с устройством потеряна», «связь с устройством восстановлена». Решите наконец: либо это критичная проблема, и о ней надо сообщить правильным образом — «Неустойчивая связь с устройством», — либо, раз связь получилось восстановить, это не важная информация, и показывать её не надо4.

    6.5. Для обслуживания не должны быть необходимы специальные знания и оборудование.


    Даёте пользователю возможность обновлять прошивку — пусть она обновляется просто нажатием пары кнопок. И делаться это будет или через стандартный интерфейс (USB/BT/Wi-Fi), или не упоминайте в пользовательской документации об обновлении прошивки с помощью SPI-программатора вообще.

    Нельзя требовать от пользователя рассчитывать битовые маски для конфигурации устройства, если эта конфигурация требуется в обычной эксплуатации.

    6.6. Система не должна требовать постоянного обслуживания.


    Если раз в месяц у исполнительного блока слетает привязка, и пользователю надо лезть к люстре и привязывать его заново — это плохая система. Если в выключателе надо менять батарейки раз в два месяца — это плохая система. Даже средний срок необходимости обслуживания каждого устройства в полгода — плохо: уже для двадцати устройств в доме пользователю придётся предпринимать какие-то действия в среднем каждые девять дней.

    6.7. В системе должна быть возможность обновления или расширения.


    Затраты на расширение системы должны расти линейно. Новый блок должен обходиться в стоимость нового блока.

    Не должно быть ситуации, когда для добавления нового датчика надо купить новый контроллер, потому что старый не поддерживает более шести датчиков5.

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

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

    7. Самодостаточность: внешние сети — это опция, а не необходимость.


    Система, в которой команды ходят только через внешний сервер — плохая система. Вы можете сколько угодно хвастаться удобными интерфейсами, модными приложениями и крутыми нейросетями, но это всё неважно, если у пользователя вместе с падением интернета пропала возможность включить свет в туалете. Разработчик, ты правда считаешь такую систему хорошей?
    А если серьезно, то не очень понимаю, почему этот пункт — это не само-собой разумеющаяся штука. Завязывая систему на внешний сервер вы создаете точку отказа с надежностью обычного сервера, но одновременно для всех ваших пользователей. Внешние сервисы это круто, они позволяют расширить функционал, но не должны быть единственным вариантом оперативного управления. Дополнительного канала управления, резервного хранения, анализа данных — сколько угодно.

    8. Централизованность: отсутствие центрального хаба ограничивает доступную логику.


    Однако, не стоит бросаться и в другую крайность — пытаться сделать систему децентрализованную, а потому абсолютно надежную.

    Децентрализованная система — это когда выключатель говорит лампочке «включись», а датчик температуры при понижении этой самой температуры сам включает обогреватель. Распределённая система проигрывает централизованной просто потому, что такая система хорошо существует только в рамках самой простой парадигмы взаимодействия устройств — «устройство управляет другим устройством». Как только сложность системы возрастает, такая система порождает больше вопросов, чем ответов. Если датчиков температуры несколько, то обогреватель должен принимать команды от всех? Или сам должен опрашивать датчики? А если надо принимать решение о включении на основе тенденции, где хранить данные архива? На каждом обогревателе? А не жирно? На каждом устройстве? И гонять трафик при каждом запросе? А где хранить и как изменять логику? А если логика включает внешние элементы? А как хранить логику на «глупых» устройствах? А как её обновлять?

    Все эти вопросы исчезают, если смириться и признать необходимость центрального хаба как точки взаимодействия данных и места хранения пользовательской логики. Пусть все устройства будут «глупыми», способными отдавать данные и принимать команды, а задача по хранению архивных данных, обработке этих данных, принятию решений и взаимодействию с внешними сервисами ляжет на тот самый центральный контроллер.

    Децентрализованность, кстати, можно сохранить, пусть и частично: ничто не мешает при отсутствии ответа от хаба посылать команды напрямую, как fail-safe режим. Логики не будет, но зато свет включить будет возможно.



    9. Система не должна производить потенциально опасные действия без подтверждения или уведомления пользователя.


    Пока мы не живём в мире, где программист ответственен за ущерб, причиненный его программой (хорошо на эту тему написано тут), в программах будет много ошибок. Они будут и в софте умного дома. Единственная возможность, при которой эти ошибки не будут приводить к катастрофическим последствиям — это ограничение самостоятельных действий системы. Потенциально опасные действия должны совершаться как минимум с ведома пользователя, а лучше с его подтверждения. Свет включать можно автоматически: баг в программе приведёт к тому, что пользователь будет разбужен ночью или получит счёт на лишние сто рублей в конце месяца. Неприятно, но вряд ли опасно. Например, включать автоматически воду, если нет механизмов, гарантированно отключающих её при потопе — нельзя. А вот выключать воду — можно, так как это не опасное действие.

    Этот принцип не утверждает, что обязательно необходимо запретить автоматическое управление всеми обогревателями, котлами, печами, чайниками и тому подобными вещами. Речь, скорее, о том, что, если вы уж делаете потенциально опасное устройство с программным управлением, позаботьтесь о том, чтобы его опасность не вышла на пользовательский уровень: в управляемом чайнике должны быть «железные» цепи, отключающие его при перегреве; ванна, которая наливается сама, должна иметь датчики затопления; утюг должен иметь возможность отключения, но включаться обратно только при нажатии «железной» кнопки, и так далее.

    10. Система должна иметь возможность самоконтроля и самодиагностики.


    Настоящий разработчик умных систем должен быть немного параноиком. Нельзя доверять интернету, он может пропасть. Нельзя доверять коду, в нем могут быть баги. Может быть, хотя бы железу можно доверять? Нет. Нельзя доверять своему железу. Реле может залипать, симисторы самопроизвольно открываться, предохранители перегорать. Наконец, пользователь может включать киловаттный чайник в розетку, рассчитанную на 100 Вт. Нужны датчики напряжения, тока, температуры. Вышла температура за пределы? Выключаем всё, отправляем предупреждение. Вышел ток за пределы — выключаем. Отключили реле, а на выходе всё еще есть напряжение? Уведомление. Включили, а напряжения нет? Уведомление!

    11. Система должна иметь возможность ручного управления.


    И даже при всех этих параноидальных штуках, все равно будет ситуация, когда проверки не справились, и у вас что-то сломалось. Выключатель в комнате, роутер, центральный хаб. А свет в туалете пользователю включить хочется. Какой вывод?

    Всегда должна быть кнопка, которой можно сделать «закат солнца вручную». Которой можно включить или выключить свет ВОТПРЯМЩАС. Потому что новый хаб привезут завтра, выключатель можно купить новый чуть позже, а свет в комнате хочется выключить именно этим вечером, чтобы спокойно поспать.

    12. Разработчики и хакеры настолько же важны, как и обычные пользователи.


    Обычные пользователи сделают вам кассу, а хакеры6 — придумают новые функции. Производитель не сможет и не должен разработать все сценарии использования системы, так как заведомо не обладает знаниями во всех областях и не может оценить эффект от разработки подобных направлений. Вполне возможно, что вашей управляемой розеткой окажется безумно удобно управлять термостатом самогонного аппарата, потому что в библиотеке решений есть PID-регулятор, и теперь все самогонщики массово покупают ваши системы. Пример несколько надуманный, но основной посыл в том, что ценой некоторых усилий стоит создавать комфортную среду для хакеров, потому что они добавляют движущей силы вашей системе.

    13. Открытость: система должна иметь API для интеграции с другими системами.


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

    14. Документированность: документация — такая же важная часть системы, как код и железо.


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

    И наконец, последний принцип (но далеко не последний в плане важности):

    15. Самодостаточность и самоподдерживаемость: система должна продолжать работать, даже если компания работать прекратила


    Человек живет 70-90 лет, система у него дома — 5-10 лет (в лучшем случае), а компании зачастую меньше. Не стоит делать систему, возможность работы с которой вы утащите за собой в могилу. Пожалейте пользователей. Проектируйте систему так, чтобы работа с ней была возможна, даже если компания и разработчики давно канули в Лету.

    Привязка нового устройства происходит с получением токена с сервера разработчика? Сделайте кнопку «Пропустить получение токена». При первом включении системы надо обновить прошивку с сайта? Сделайте так, чтобы при недоступности сайта заливалась дефолтная прошивка. И так далее.



    В этой статье я попытался описать весь опыт использования, работы и проектирования таких систем, сжатый в 15 основных принципов. Часть из них может показаться надуманными, часть — спорными (и это нормально), часть — банальными (и это тоже нормально).

    Но если вы задумались хотя бы над одним из них, значит, статья писалась не зря.

    Сноски и комментарии


    1. Говоря «пользоваться», я имею ввиду не процесс настройки, а процесс обычного взаимодействия с системой.
    2. Обратите внимание, я говорю не «задержка должна быть такой же», а «пользователь не должен заметить». Практика показывает, что человек не замечает задержки примерно до 300 мс.
    3. Возможно, он вырос в средней Азии и считает, что лучшее средство от жары — горячий зеленый чай.
    4. Разумеется, когда я говорю «информацию показывать не надо», это означает, что не стоит присылать пользователю сообщение об этом каждый раз. Её надо показывать по запросу пользователя — при нажатии кнопки «показать логи» или «показать отладочную информацию». Не надо считать пользователей идиотами, но надо уважать их время.
    5. Конечно, невозможно спроектировать систему, которая поддерживала бы бесконечное количество устройств. Ограничения будут всегда, но задача разработчика сделать так, чтобы они не играли роли в 99% случаев. Ограничение в шесть датчиков — неприемлемо. Сто-двести устройств в одной сети — достаточное количество для большинства пользователей умных домов.
    6. Я говорю о хакерах в первоначальном значении этого слова, по RFC1983, а не как о взломщиках.
    Samsung
    99,02
    Компания
    Поддержать автора
    Поделиться публикацией

    Комментарии 98

      +6
      Насколько эти правила просты и очевидны, настолько хреново реализуются в реальной жизни. И, если честно, не могу понять причину этого факта. Можно взять любое правило из этого манифеста и плакать горючими слезами вспоминая практический опыт работы с «умными» системами.
      P.S. Мой личный опыт относится в основном к промышленным системам, про которые автор упомянул в дисклеймере, но чёрт возьми, разработчики! почему нельзя и в промышленности думать о людях при разработке?
        0
        Коротко — потому что в промышленности пользователи и заказчики — разные люди. Хорошо это или плохо — отдельный вопрос.
        0
        Я думаю что успехи персональных устройств, типа смартфонов, базировались на том, что пользователю даровалось успешное пользование компьютерным устройством (ранее ему не доступным), если он запомнит сценарий — тапай сюда, слайдери тут и тп. В домашней автоматизации все немного по другому — дом это уже устоявшиеся пользовательские привычки.
        Одному важно следить за затемнением перед сном, другому начхать, третьему важно видеть напряжение в сети( это я о себе) и задействованных потребителей, а четвертому нужно выключать утюги забытые.
        Отсюда многообразие, от многообразия — большие вложения в устройство, которое сможет охватить большое кол-во потребителей. Большие вложения, влекут высокую цену и непривлекательность для масс-маркет.
        В промке все немного похоже на дом, плюс, добавляются пропиетарные интересы компаний производителей, конкуренция однако…
        Плюс никто не отменял наследственность — всегда проще расти базируясь на уже созданном решении, даже если оно уже «слегка выпало из времени»…
          +2
          Автор, да то что вы написали применимо ко всему. Например к программированию. Или к дизайну например. Другое дело, что всем на это плевать)
          Да, плевать. Да, всем. Читающий — тебе на это тоже плевать) Иногда ты этого хочешь, но сам ты для этого ничего не сделал. И ты сидишь и ждешь, пока тебе это сделают другие, правда же?
          Выводы.
            +4
            Я согласен с общим посылом поста, но есть несколько размышлений. Во-первых есть довольно странная тенденция подмены понятий, к примеру в самом начале «потребительских IoT-систем (читай «умных домов»)». Так уж сложилось, что потребительские IoT-системы, что бы это ни значило, не равно «умные дома». Умные дома были баз-вордом в 90е и некоторое время позже, но даже в те времена их значение сильно зависело от рынка. К примеру, в Европе, основным упором было рациональное использование энергоресурсов (до этого был домотикс, как автоматика, а потом уже разумный дом) при сохранении потребительских свойств, поэтому основные технологии строились вокруг инженерных систем, в северной америке умные дома ассоциировались с мультирумами и прочими AMX и Crestron, а в той же Корее и Японии, в виду культурных и медицинских особенностей (забота о старшем поколении, которое живет долго) и вовсе дала толчок развитию умных домов геронтоматика (была когда-то попытка создать такой термин). Интернет вещей не может иметь смысла без двух компонентов: вещей и интернета. В противном случае это не интернет вещей. Это автоматика, автоматизированные системы, что угодно.

            Конечно это давняя проблема размытия термина до его окончательного формирования, но все же. Почему я говорю о не совпадении этих вещей, да потому что я вот уже 15 лет пользуюсь этими самыми умными системами. И именно системами, а не подменяющими их функции свистелками, разработанные маркетологами, а не инженерами. Призыв делать понятные, удобные интерфейсы дело очень правильное, однако, мне хотелось бы напомнить формулировку бритвы Оккама в прочтении Эйнштейна: «Всё следует упрощать до тех пор, пока это возможно, но не сверх того». Знаете, вот у меня приточно-вытяжная вентиляция с роторным рекуператором и 10 зонами управления переменным расходом воздуха. Ну вот никак я с помощью милых сердцу современников Nest, я не заставлю это работать, а вот с помощью EIB/KNX это трудится уже больше 10 лет, и работает совместно с парой котлов, кучей насосов и прочих треходовых клапанов. Всегда можно списать на нарушение дисклеймера, но я хочу сказать, что я не подвержен профессионально деформации и даже не притащил домой ни Profibus, ни LON, ни даже довольно удобный Modbus (какой-то из десятков диалектов). Это вполне бытовая система, разработанная лидерами рынка инженерии эпохи назад по меркам ИТ. А вот движение и развитие систем согласно вашему манифесту, может привести к достижению локального минимума удобства и уверенности в том, что все что сложнее вкручивания лампочки невозможно для пользователя.

            Соглашусь с тем, что есть классы устройств (чаще всего не систем), которые должны быть простыми: умная лампочка, умный выключатель, умный пылесос, умные шторы и тд. А вот система отопления умного дома — это уже более осмысленная вещь, ровно как и правильное проектирование сети электроснабжения. Излишнее упрощение может приводить к очень неприятным последствиям.

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

            Хотелось еще и про API написать, в контексте первых пунктов манифеста, но уже и так много букв

            Ну и в копилку позитивного восприятия, очень меня улыбнул КДПВ: дерзко в блоге Samsung фоточку линейки Aqara/Mijia Xiaomi публиковать. С удовольствием пользуюсь их устройствами в дополнение к инженерным Siemens (включая швейцарский SBT), ABB, Jung, Bosch, Buderus (хотя они уже тоже Bosch)

              0
              но я хочу сказать, что я не подвержен профессионально деформации и даже не притащил домой ни Profibus, ни LON, ни даже довольно удобный Modbus (какой-то из десятков диалектов)

              Одно то, что вы знаете эти названия, уже свидетельствует в пользу нарушения дисклеймера :)
              А если серьезно, то граница применимости части пунктов в этой статье как раз пролегает по «умение сделать что-то большее, чем вкрутить лампочку/поменять розетку». Просто потому, что я говорю про потребительский рынок. Сложная приточка — это не консьюмерский рынок, и все. Начиная с того, что ее установка несколько сложнее замены лампочек и розеток, и стоит немного больше лампочек и розеток, и заканчивая тем, что такая система нужна довольно малому проценту людей.
                0
                такая система нужна довольно малому проценту людей

                Объективно нужна она как раз всем, только не все об этом знают и ещё меньше готовы платить.

                А вообще согласен по всем пунктам, кроме радио. Провод был, есть и будет есть лучше для всего более-менее стационарного, будь то компьютерная периферия или выключатель лампочки.
              0

              Спасибо, что описали манифест по которому у меня разработан и работает мой "Умный Дом". Теперь осталось на основе этого манифеста привести примерную топологию и выбор компонентов.
              Кстати, один момент в манифесте не учтен и я бы предложил его добавить в дополнение к разделу 6:
              Еще на этапе проектирования должна быть заложена доступность системы на уровне 99,9% и выше. Это означает, что при любой, даже самой страшной поломке, система не должна переставать работать на большее время, чем 8 часов в течении года. Это время включает и ремонт контроллера и бэкапы и апдейты. Поэтому надо обеспечивать а) горячий или холодный резерв, б) автоматические бэкапы, в) возможность быстрого перезапуска системы самим пользователем на резервном железе, без ожидания приезда специалиста.

                0
                Ну, на самом деле, мне кажется, это излишне. Сделать-то можно, но это добавит сложности и стоимости системы, а плюсов для многих пользователей это прибавит незначительно.
                  0
                  На самом деле — это не так. На самом деле все как раз работает по манифесту, или же подобным манифестам. И всегда будет работать только по ним. Док-во?) Легко.
                  Оглядитесь вокруг. Все что сделано вокруг — ИСКУССТВЕННО УСЛОЖНЕНО. Именно так. Потому что проще делать как было 100 лет назад. А еще проще как делали 1000 лет назад)
                  Но зачем-то, на длинных временах все это усложнили. Да, проще прибить гвоздями три кривых доски. Но почему-то грандиозно заморочились, применили лютую химию, физику и даже математику, и всем выдали очуменной [я еще раз подчеркиваю] ОЧУМЕННОЙ СЛОЖНОСТИ шкафчики. В обычных шкафчиках применены сотни технологий. Зачем это?) Это же сложно!
                  Тут момент в том, что вы к этому привыкли и считаете уже как должное. Но отбери у вас эти шкафчики и выдай вам три доски сколоченных гвоздями — вы же начнете вопить, не так ли?))
                  Так прибавляет эти самые плюсы для пользователей искусственное усложнение? Вы же пишите что незначительно прибавляет? А выясняется что очень даже значительно, ага?

                  Выводы:
                  На короткую перспективу вы правы.
                  Но на длинную перспективу — абсолютно не правы.

                  Мир только и делает, что катастрофически усложняет сам себя, только лишь затем, что бы в итоге было проще, надежнее, понятнее, геморроя меньше, проблем меньше, и да, не забывайте про искусство, и оно тоже учитывается)
                  ВСЕ ЭТО ВОЗМОЖНО, ЕСЛИ СОБЛЮДАТЬ ПОДОБНЫЕ МАНИФЕСТЫ НА ДЛИННОЙ ПЕРСПЕКТИВЕ, и по-другому никак. Ничего другого пока не придумали.

                  И да, еще момент. На длинную перспективу работают 5%, а на короткую 95%))))) И это тоже нормально. Выбор за вами) Или вы делаете однодневки. Или же делаете как бы пафосно оно не прозвучало, да пусть — «вещи» мирового масштаба) Выбирайте. Вас никто ни к чему не принуждает вовсе.
                    0
                    Ммм… Понимаете, какая штука: если сейчас начать делать шкафчики из графена, со встроенной климатикой, которая поддерживает температуру для каждого продукта индивидуально, и системой распознавания этих продуктов, это будет круто, без сомнения. Но стоить будет как чугунный мост, и не будет нужно 99% людей. Да и оставшемуся проценту не особо нужно будет, просто им денег за это будет не так жалко.
                    Хотя безусловно, я уверен, что через 100 лет такого рода технологии будут восприниматься как само-собой разумеющееся, и будут входить в чек-лист по выбору мебели для кухни средней семьи: «Пункт 25. Шкафы должны быть оборудованы зонной климатикой, а в мусорке должен быть установлен компактор».

                    Но это будет достигнуто только тогда, когда стоимость этой климатики будут достаточно незначительна по сравнению со стоимостью всей мебели. Именно поэтому сейчас у нас на кухне шкафчики с дверками, шурупами и сотней технологий: потому что стоимость этого шкафчика не сильно отличается от трех досок с гвоздями. Цена и того, и того на вторичном рынке часто меньше стоимости перевозки этого на другой адрес.
                    Но эти шкафчики по такой цене не появились по мановению волшебной палочки или после написанию манифеста. Их появлению предшествовала долгая эволюция материалов, инженерных подходов, подходов к управлению производством, взглядов людей, которые эти шкафчики покупают, наконец.
                    Смешно думать, что написание в этом манифесте тезиса «надо обеспечить отказоустойчивость 99,9%» сразу эту отказоустойчивость обеспечит. Надо ориентироваться на возможности рынка, как в плане производства устройств, так и в плане покупательной способности. И заложить избыточную по меркам рынка надежность, пребывая в полной уверенности, что это именно то, что надо людям, и за что они готовы платить больше, чем конкуренты — верный способ прогореть.
                      0
                      Ммм… Понимаете, какая штука
                      Понимаю) Но я не пишу манифестов, и многое не учитываю, в писанине. А на самом деле я ВСЕ учитываю, я ж специалист теории информации. Другое дело, что описать сразу и все — невозможно. Но разве «в природе» это что-то меняет?) Оно как двигалось только в одном направлении — т.е. по манифестам — так и будет двигаться.

                      Напишите проще, даже можете добавить в манифест, если хотите. Ну что-то типа того: юзайте уже известные, дишовые и проверенные технологии, и на основании уже «железобетонного» городите новые. Другое дело, что поиск из сонма имеющихся технологий наиболее подходящщих для поделок — это не тривиальная задача конечно же, ну так это детали)
                      Смешно думать, что написание в этом манифесте тезиса «надо обеспечить отказоустойчивость 99,9%» сразу эту отказоустойчивость обеспечит.
                      Смешно. И не смешно. Объяснюсь. Это ж манифест у вас) Не стесняйтесь. Пишите как оно ДОЛЖНО быть. И да, 99.9% — это смешно)))) Не стоит так писать. Надо писать 100%. Ибо 99.9 в периоде — это прошлый век. Уже прошлый. ДА, ПРОШЛЫЙ. Нынешний век — это век криптографии. А как «всем известно» [впрочем опять же далеко не всем], любая система отказоустойчивая на 100% только в одном случае — если она криптографически отказоустойчивая и это математически доказано) Смотрите, у вас есть винчестер, как бы вы не корячили наработку на отказ и прочее-прочее-прочее «прошлого века» — ничо не выйдет) Вы получите 99.99..., но применив криптографию — вы и получаете «винчестер самсунг» 100% отказоустойчивый) Я не про то, что он не ломается, я про другое. Я про то, что данные «туда-сюда» на винт перемещаются с помощью пары глобальных технологий. «Старые» технологии отказоустойчивости — это 99.9, новые, как раз таки доводящие «систему» до 100% — это криптография) И без криптографии никак. Хотите 100 — только криптография, без вариантов. Но это никак не отменяет старых глобальных и великолепных технологий, типа наработок на отказ и т.д.

                      Вырисовывается еще один пункт в таком случае. Что-то типа: объединяйте технологии, юзайте их совместно) И на самом деле, я даже примеры знаю и много — даже казалось бы необъединимое — можно объединить, и получаются в итоге такие грандиозные «штукенции», что диву даешься)) Но конечно же это все нетривиально, а в итоге просто)

                      И еще момент: есть теория типов, ну или логика высших порядков, или теория абстракций — называйте как хотите.
                      Так вот я бы обозначил следующее: все что не делается, должно в итоге описываться меньшим кол-вом абстракций, чем было «до». Про сложность абстракций я ничего не говорю. Вообще ничего. Сложность абстракций должна быть соизмеримой. Я говорю про их кол-во.
                      На пальцах: для юзера что-то описывалось пятью абстракциями, вы искусственно усложнили, и в итоге это усложненное стало описываться тремя абстракциями, причем реализацию усложнения юзер конечно же не видит. Для юзера было пять, стало три. Причем эти «юзерские» абстракции по сложности должны быть соизмеримы. В итоге для юзера выйдет проще? Да! Отчасти похоже на ооп не так ли?) А так и должно быть. Действуйте)

                      Вообще, теория простого и сложного — это «краеугольный камень» этого всего)) Попытайтесь объяснить что это. Не все это понимают к сожалению. И, возможно, непонимание этого — и приводит к невменяемым поделкам в итоге. И да, теория простого и сложного — это как раз таки пункт номер ноль вашего манифеста. А все остальное что вы написали — это «всего лишь» следствие пункта 0. Забавно же?)
                0
                Для пользователя радио хуже проводов, прежде всего в плане уязвимости к взлому. Все помнят историю с заражение вирусом лампоче Philips Hue. Известный производитель, протокол из списка «Хорошее радио» — и целые жилые районы зараженных лампочек. Радио лучше проводов для крупных производителей — в этом случае они получают контроль над устройствами и системами, и для установщиков — можно предложить развёртывание системы быстрее и дешевле. Как показывает практика — чем дальше тем больше объектами взлома становится сравнительно простая пользовательская электроника, и лучшая защита — физическое ограничение доступа. Все компоненты умных систем нуждаются в питании. Для датчиков питание может быть батарейным, но замена десятков батареек — сомнительное удовольствие. А если есть провода питания — по ним же может выполняться обмен данными, есть множество реализаций, и для высоковольтного питания, и для низковольтного. Радио — это полезная опция, позволяющая быстро нарастить систему, но лучше всего, когда у всех устройств с радио есть проводные аналоги, тогда при очередном ремонте их можно заменить на них.
                  0
                  Не смотря на то, что я в своем комментарии написал что провода лучше радио, но позволю себе не согласиться с аргументами. Раз уж мы говорим про IoT, а значит есть связь с интернетом, то степень защиненности внешнего канала становится критичнее, чем радио. Поясню. Шифрование того же ZigBee стойкое настолько, насколько вообще возможно, при условии ограничения доступа к координатору сети. А вот что за прошивка внутри этой лампочки никому по сути не известно. Будет ли она корректно проверять сертификаты производителя при скачивании очередной прошивки? Думаю, это риторический вопрос. То есть наиболее очевидный вектор атаки на самом деле, как мне представляется, это все же не полевой канал связи, а инфраструктура доставки обновлений или ваш внешний канал и система OTA в принципе. Когда мы говорим о IoT, мы автоматически так или иначе в сети. Пусть через фаерволы, и абсолютно не важно мы используем шлюзы или туннели для доставки протокола до управляющего устройства. Мы не изолированы с этим нужно либо смириться, либо не использовать IoT, а возвращаться к старой доброй автоматике в категорированных сетях.
                    0
                    Однако, защитить от взлома одно устройство с достаточными для защиты ресурсами существенно проще, чем зоопарк простых устройств, некоторые из которых просто не имеют достаточной вычислительной мощности или достаточно энергии в батарее для применения стойких алгоримов шифрования. И если даже имеют на сегодняшний день — через несколько лет используемый в них алгоритм может оказаться скомпроментированным, а новый они не потянут даже при желании их производителя обновить прошивку, а часто через год-два производители перестают их обновлять.
                      +1
                      О, а сейчас Вы затронули краеугольный камень IoT! Понимаете, творится вообще форменная ерунда. Я сам программист, если что, но когда софтверные компании полезли в эту отрасль… Вот сколько лет эксплуатируется ваша люстра? А выключатель настенный? А что будет через 5 лет с выходом очередной iOS или Android? Цикл поддержки программных продуктов редко когда привышает 5 лет. Да и то, это огого какой LTS. Сколько было deprecated продуктов у Google? Грустно было когда Reader убили, а если следующим будет мой дом? Все же мы помним, что «если хотите использовать Philips Hue с Siri, купите шлюз 2 версии». Ну то есть я никак не понимаю, как голосовой ассистент, который живет в моем телефоне и вооон в том облаке, говорит, что отказывается работать с моей работающей лампочкой (я-то знаю почему, но это в корне неверно)… Думаю, этот как раз проявление того, как ту часть про «удобство пользователя» в этом манифесте можно прочесть неправильно. Мол купи новую версию коробочки и все авто-магически заработает. В этом плане я очень поддерживаю посыл в посте про API, локальность и открытость. Если работает локально и есть API, в худшем случае можно поднять свой локальный сервис.
                    0

                    А типа, если бы эти лампочки были проводные, их никто бы не взломал? С вот многие компьютеры подключены по проводам, но это не мешает их заражать всякими вирусами. ВсЯкие Айпи камеры тоже шпионят, хотя совсем не радио.
                    Это я к тому, что считать радио априори опасным, а провода пюаприори безопасными — неправильно. В первую очередь следует ориентироваться на софт, который крутится в этой железке. Если это неизвестно кем написаный WiFi на линуксе — то вероятность одна. А если это стандартизированный и скртифицированный стек на 8-битном контроллере, зашитый туда на века — это другое. И вероятность взлома совсем не очевидна.

                      0
                      Если бы эти лампочки были проводными — их вряд ли кто-то сломал бы в обход шлюза и файрвола. Со взломом через файрвол бороться проще — не нужно обновлять или заменять несколько десятков недешевых лампочек, достаточно настроить, обновить, или заменить файрвол. И смысла массово взламывать беспроводные лампочки гораздо больше — так создаётся подконтрольная взломщику mesh-сеть, через которую можно взломать нужное удалённое устройство, управлять им, и заметать следы.
                        0
                        Вы прячете идиотизм в криптографии и защите отдельных разработчиков устройств за тезисом «радио ненадежно». Радио настолько же надежно, насколько надежна современная криптография, если эта криптография в ней применяется правильно. Пока никто не взломал, например, AES, и тенденций к этому не предвидится, следовательно, нет особой проблемы построить защищенную сеть на основе радио-протоколов.

                        P.S. Если бы «эти лампочки были проводными», то их и не надо было бы взламывать — ибо то, чем они взяли рынок(легкостью установки системы в любом доме без необходимости прокладывать слаботочку и переделывать ремонт) невозможно сделать на проводных технологиях.
                        Да, я знаю про X10 и иже с ним, но у него есть свои минусы, и как видим, эти минусы достаточно значительны, чтобы не быть особым конкурентом радио.
                          0
                          Я не продвигаю тезис «радио ненадежно». Я утверждаю что радио — это:
                          1) Количество потенциальных точек взлома равное количеству устройств, что всегда менее безопасно чем одна точка. Кроме самих алгоритмов, в которые изначально законодательно заложены бэкдоры, есть ещё реализация, которая может содержать уязвимости вследствие ошибок. И любая экспертиза и сертификация лишь уменьшает вероятность их наличия, но не исключает полностью.
                          2) Как следстве первого, плюс ограниченность ресурсов простых устройств — дополнительные сложности с закрытием выявленных уязвимостей.
                          3) Принципиально большие трудности с обнаружением источника атаки.
                          4) Если, как предлагается в статье, строить сеть как mesh — дополнительный мотив заражения, которое может вызвать проблемы с безопасностью функционирования даже без намерения атакующего.
                          DES считался надёжным 22 года, и был взломан. AES существует ещё не так долго.
                            0

                            И все же вы вводите потребителя в заблуждение:


                            1) Для взлома интересны не абсолютно все радио-реализации, а только те, которые открывают злоумышленнику широкие возможности по внедрению в домашнюю сеть или в жилище. И если вы возьмете тот же Z-wave, то обнаружите, что протокол там настолько ограничен, что максимум, что злоумышленник может сделать — так это подать пару неправильных команд или попытаться зафлудить сеть своим 1мВтным передатчиком. С добавлением шифрования первая возможность уже тоже исключена. Поэтому то, что таким образом получить доступ к удаленным устройствам через лампочку — это больше фантастика, чем реальность. В других аналогичных протоколах ситуация обстоит примерно таким же образом. С Wi-Fi ситуация обстоит, конечно, иначе.


                            2) "в которые изначально законодательно заложены бэкдоры" — можно источник этого тезиса?


                            3) Надеюсь вы понимаете, что ваше утверждение "не нужно обновлять или заменять несколько десятков недешевых лампочек, достаточно настроить, обновить, или заменить файрвол" создает только иллюзию безопасности? А иначе никто бы не заставлял нас обновлять домашние и рабочие компьютеры по любому чиху, хотя они стоят за десятком различных фаерволов? Поэтому хоть в проводной, хоть беспроводной сети вам все же придется обновлять софт и на IoT устройствах, хотя не исключаю, что многие на это забивают.


                            4) Еще насчет "безопасности" проводов — уже много лет заметна тенденция шифрования интернет трафика — HTTPS и прочее, даже если он передается по проводам. И на это есть определенные и логичные причины. И вот представьте, что у вас проводная IoT сеть. Если к ней подключится злоумышленник и если шифрования у вас нет — то можно сказать, что все, приехали. А вот если вы начнете шифровать, то возможно ваши устройства это уже не потянут по ресурсам. В каком направлении вы представляете будущее движение в этом случае? Вы думаете, что в этом случае беспокоиться не о чем? "Файервол все разрулит и от всего защитит?"

                              –1
                              1) В случае, если цель взлома — доступ в домашнюю сеть, радио-реализации создают дополнительный вариант взлома — через шлюз (центральный контроллер) вариант Z-wave, Z-wave plus, вполне пригоден для этого, поскольку предусматривает возможность обновления прошивок устройств по воздуху, и может обеспечить скорость передачи данных до 100кбит/с. Для этого нужно, чтобы реализация этого протокола в шлюзе имела уязвимость, позволяющую выполнить произвольный загруженный код. Но гораздо большую опасность представляет изменение поведения исполнительных устройств умного дома, как при помощи выдачи им команд, так и при помощи их полной несанкционированной перепрошивки. Самый простой пример: если злоумышленник хочет похитить человека — он может выманить его из дома в определённое место рядом с домом простым миганием захваченных им «умных лампочек» которое разбудит его среди ночи, и побудит выйти посмотреть что с ними случилось, причём сделать это он может захватив контроль над контроллером умного дома на другом конце жилого района, и перепрошив через него множество лампочек в этом районе, создав таким образом mesh-сеть. Побочным эффектом этого может оказаться нарушение функционирования множества систем «умный дом», для которых эти лампочки были ретрансляторами. Есть варианты и похуже. Если злоумышленник обнаружит, что в каком-то из потенциально опасных механизмов умного дома есть возможность при помощи модифицированной прошивки выполнить опасные для людей действия, которые, вследствии ошибки при проектировании или серийном производстве (например, при некачественном копировании или подделке), не будут блокированы чисто аппаратной защитой — последствия могут быть очень печальны.
                              2) об этом напишу позже.
                              3) «обновлять домашние и рабочие компьютеры по любому чиху» нужно потому, что они обмениваются данными с удалёнными внешними устройствами напрямую. С устройствами умного дома ситуация иная — обычно они управляются через центральный контроллер, который не передаёт им никаких команд без преобразования. Это практически исключает возможность внедрения кода или неавторизованного управления такими устройствами напрямую из интернета, через штатный канал управления, без взлома контроллера. В случае с Ethernet остаётся вероятность взлома через разные дополнительные и сервисные каналы, но она перекрывается файрволом.
                              4) Интернет трафик нуждается в шифровании потому что он идёт непонятно через какие каналы и оборудование, и может быть перехвачен или подменен во множестве мест. Пользователь даже не может быть уверен что он не передаётся по беспроводному каналу на каком-то из участков. Если физическое ограничение доступа ненадёжно — шифрование нужно и для проводного подключения. Но ситуация с массовым вирусным заражением целого района в этом случае возникнуть не может — физический доступ нужен отдельно к каждой домашней сети.
                                0
                                С устройствами умного дома ситуация иная — обычно они управляются через центральный контроллер, который не передаёт им никаких команд без преобразования. Это практически исключает возможность внедрения кода или неавторизованного управления такими устройствами напрямую из интернета, через штатный канал управления, без взлома контроллера. В случае с Ethernet остаётся вероятность взлома через разные дополнительные и сервисные каналы, но она перекрывается файрволом.

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

                                  0
                                  Если устройство не может работать без подключения к «облаку» — оно не очень-то вписывается в само понятие «умный дом», это отдельное устройство, которое по сути не может полноценно работать в системе. Но чаще есть несколько вариантов интерфейса, и тогда выход в интернет можно перекрыть файрволом. А лампочки с Ethernet гугл вообще не нашел.
                                    0
                                    Если устройство не может работать без подключения к «облаку» — оно не очень-то вписывается в само понятие «умный дом»

                                    Озвучьте же свое понимание термина «умный дом», а то оно у вас как-то отличается от общепринятого.
                                      0
                                      Моё понимание концепции умного дома совпадает с вашим манифестом за исключением тезиса о беспроводных решениях. Умный дом — это система, автоматизирующая управление оборудованием дома. Как любая система она должна быть связной.
                                        0
                                        Так а где в «системе, автоматизирующей управление оборудованием дома» есть пункт о том, что это не может работать через облако?

                                        «Умный дом» — это очень базовое понятие, которое можно обсуждать и корректировать только на том же самом, базовом, низком уровне. Вносить туда определения с более высоких уровней — неправильно.

                                        Это все равно что в обсуждении термина «автомобиль», в котором выработали что-то вроде «устойчивый самодвижущийся механизм на колесах для перемещения людей, находящихся внутри», и спорят о том, признавать ли машиной механизм, который может еще и летать, влезть с «а вот в машине должна быть еще и магнитола, какая же машина без магнитолы, ребят». Закономерным ответом на это будет «шел бы ты, мальчик, куда подальше со своей магнитолой, мы тут более глобальный вопрос обсуждаем».

                                        Так и с умным домом — пытаться туда пропихнуть «работу локально» приводит к разбеганию термина: когда один понимает УД как систему, работающую локально, второй как систему, которая дает возможность удаленного управления, третий по другому, и все три срутся на тему «вот ваш дом на самом деле не умный, а мой умный».

                                        Жесткое определение термина «умный дом» как «система, берущая на себя часть рутинных действий по управлению домом» это как раз попытка провести четкую границу, с которой большинство вменяемых людей согласны. Не согласны только те, кто называет умным домом лампочки, управляемые с телефона, но на то я и уточнил: «вменяемых».
                                        И если мы все-таки протащим в это определение что-то про автономию, мы сделаем только хуже: не автономные системы есть, и широко применяются. Нельзя отбирать у них право называться умным домом только потому, что они неправильно спроектированы(из-за непонимания принципов, в погоне за привязкой пользователей или потому что разработка проще, не суть важно), потому что это отрицательно скажется на самой возможности диалога: вместо объяснения «почему твой умный дом спроектирован не самым лучшим образом и как это исправить» получится монолог «твой дом не умный, а тупой, и даже не спорь со мной».
                                          0
                                          Так а где в «системе, автоматизирующей управление оборудованием дома» есть пункт о том, что это не может работать через облако?
                                          Система в целом может работать через облако, и это даже не противоречит концепции одного интерфейса как средства улучшения защищённости от взлома, если речь идёт о высокуровневых функциях и взаимодействии с внешним миром, удалённом управлении — в этом случае функции защиты доверяются производителю, у него для этого больше возможностей. Это плохая система в плане надёжности и защиты от самого производителя, если не предусмотрена возможность полноценой автономной работы. Но вот прямое управление через облако каждым отдельным устройством — совсем другое дело — в этом случае система виртуальная, не защищённая, и может развалиться в любой момент. Можно ли виртуальный умный дом называть умным домом? Наверное можно, но с большой натяжкой.
                                            0
                                            Эх. Не поняли.
                    +1
                    На мой взгляд, единственно правильная система связи — по проводам электросети. Любое устройство умного дома требует сетевого питания, и связь должна быть по этим же проводам. Только очень ответственные потребители, имеющие свой источник резервного питания (котел, система безопасности), могут иметь и резервный радиоканал. Радиоканал могут иметь и датчики, но стоит очень хорошо подумать, прежде чем применять такие. А еще лучше подумать в сторону фотовольтических элементов. Система которая раз в месяц требует новую батарейку, скорее всего окажется неработоспособной в итоге.
                      +1
                      Домашняя автоматизация и началась с них (проводов электросети). Тот же X10 с 1975, кстати, прямые его потомки до сих пор активно продаются. Общеевропейские стандарты автоматики тоже использовали электороводку как базовую среду передачи данных (как один из вариантов, который также включал IR, 433 и видую пару), но на практике это все было сопряжено с большим количеством сложностей по фильтрации потока данных на границе квартиры или дома. Да и просто с межфазной коммуникацией. Хотя, при современных чипах эти потоки могут быть вполне хорошо зашифрованы, но ведь по сути мы получаем такое же радио, но без свободы кнопочку положить на тумбочку и перенести на стол с ноутбуком, но с ворохом технических сложностей, отлично описаных в статьях про качество проектирования электроустановочных изделий. Понимаете, одна CR2032 (которой как показала практика хватает более чем на год) вас точно не убьет. Да и вообще, притянуть к датчику открытия окон или к датчику движения 230В как-то уж слишком избыточно. Знаете, я как раз пошел по обратному пути. У меня все ответственные актуаторы, сенсоры и контроллеры подключены проводами, а вот всекие улучшалки и дополнительные удобства по воздуху. Даже если будет заглушен весь диапазон частот, в худшем случае не включится автоматом свет в каком-то коридоре. А вот про котлы, защита от подалов, замерзания и вовсе должна работать автономно даже в случае пропадения шины данных (да, у меня шинная топология, но это не так важно). В том же BACnet, отлично расписаны и реализованы системы уровней контроля и работы автоматики. В случаях разрывов связи между PLC, модулями, датчиками и тп расплачиваться можно только эффективностью управления, а не физической безопасностью людей или имущества. Поэтому это системы созданные инженерами для инженеров. Какую бы фигню не навводил оператор на диспетчерском пульте — опасность заморозки калорифера будет выше по приоритету и плевать на желание оператора или пользователя, а если есть сработка противопожарной сигнализации, то плевать на замерзание теплоносителя в медных трубках
                      +2
                      Спасибо, буду использовать как чек-лист.
                        +1
                        Есть спорные моменты.
                        Но по сути под каждым пунктом подписываюсь!
                        Много разных систем автоматизации попробовал у себя дома, и промышленных и самоделок собственной разработки, приживались только те, о существовании которых домочадцы либо не догадывались, либо которые не отличались от обычных.
                        Например «Умный свет»
                        Теща, с женой как всегда клацают выключателями, совсем не задумываясь проводами он прицеплен или по радио. А я время от времени переключаю им свет в кухне через веб интерфейс, сидя у себя в кабинете. А всякие навороты со сценариями освещения и дистанционным контролем и управлением, остается чисто моей «игрушкой». Но всем особенно понравился функционал, «выключить весь свет» щелчком выключателя возле входной двери. Наверно только голосовое управление способно создать приемлемую альтернативу, простому выключателю. Но тут пока принцип надежности управления не позволяет делать его основным.
                          +1
                          В моей практике в пределах квартиры голосовое управление редко когда себя оправдывает при условии достаточного количества выключателей в правильных местах(выходы, с обеих сторон кровати и тд), а вот за городом — это да. Сказать Сири «Включи свет на улице» удобно, потому что идти в дом далеко бывает. Групповое выключение света физическим выключателем самый удобный способ, особенно, если выключатель на стене и никуда не двигается — работает автоматизм не задумываясь.
                          +2
                          Отличный манифест, подписываюсь.
                          Но похоже полностью ни одна система ему не соответствует. Поэтому у меня пока нет умного дома в доме.
                            0
                            Пункт 9.
                            Получить бодрящие 220 Вольт при замене лампочки — хорошо, а включить водяной кран, без обвешивания датчиками затопления — плохо?
                            Как то первый абзац неаккуратно сформулирован.
                            Со вторым абзацем соглашусь.
                              0
                              Замена лампочки — это осознанное действие пользователя(ну, как правило). Залез пальцем в патрон — ну, сам виноват.
                                0
                                Обычно замена/очистка происходит при обесточенном светильнике.

                                Тогда необходимо добавить пункт 16: Чек-лист на каждое событие; и Пункт 17: Полный свод событий и действий пользователя.
                                Данные материалы должны присутствовать на пластиковых листах, в зоне действия всех датчиков.
                                  0
                                  как будто мёртвому пользователю будет от этого легче
                                    0
                                    Так чем оно отличается от обычной ситуации с обычной лампочкой? Лампочку выкрутил, в патрон пальцем залез(не очень понимаю, как, но допустим).
                                    –1
                                    На лампу фаза не идет. Фазу рвет выключатель.
                                    На лампу ноль идет. И ноль выключатель не рвет.
                                    Оно ВСЕГДА так должно быть, и оно описано во всех правилах построения и эксплуатации сетей, особенно домашних. Если в промышленных сетях допускается вольность, и да — допускается в некоторых случаях не рвать фазу, то в домашних сетях это исключается. Фаза обязательно должна быть разорвана.
                                    Вывод: выключателем щщолкните, и лезьте в патрон любыми членами.
                                      +1
                                      то в домашних сетях это исключается.

                                      Я уже проехался по вашему идеализму ниже, но сделаю это еще раз. Надеюсь, я успею это сделать быстрее, чем вы где-нибудь залезете пальцем в патрон, свято веря в том, что фаза всегда и везде разрывается выключателем.
                                        0
                                        А если регулятор/выключатель электронный? Вроде выключено… а полезешь и случайно заденешь вывод — сработает тиристор по превышению dV/dt и даст заряд бодрости на ровном месте.
                                      0
                                      Интересный вопрос вы подняли. С одной стороны — классический сценарий замены лампочки — если выключатель света висит на фазе — выключаем свет и спокойно меняем лампочку.
                                      Более надежный вариант — выключаем автомат при горящем свете — свет выключается.
                                      Если же мы ставим выключатель, работающий импульсом (один импульс — изменение состояния света вкл\выкл), то пользователь может использовать свой предыдущий жизненный опыт: нажал на выключатель при работающей лампе — свет погас — с полной уверенностью полез менять люстру\лампочку и в это время скрипт по датчику освещения\расписанию\ошибке подал напряжение на люстру… Мы то с вам конечно, знаем, что отключение должно производиться «выше по течению» только на автоматическом выключателе, но…
                                        0
                                        Так вы в общем случае тоже не всегда можете запомнить, выключен сейчас выключатель или нет.
                                        Но в общем, способ решения есть: если напряжение подали, а тока нет, то значит, лампочка отсутствует или не работает. Сгенерировать ошибку в лог и отключить питание.
                                          0
                                          Вроде у saege5b и мой комент — речь пошла в разрезе безопасности, а не об индикации технической проблемы пользователю.
                                          «Так вы в общем случае тоже не всегда можете запомнить, выключен сейчас выключатель или нет. » — как раз в общем случае, если выклютчатель смонтирован на фазе — я вижу свет — выключаю свет выключателем и убеждаюсь в пропадании напряжения в цоколе.
                                          В случае автоматической сработки и подачи напряжения — такой гарантии нету. Тут уже мудрить нужно что-то: переключатель «авто\мануал» в щитке, отключающий любую автоматику, прочие защиты и т.д. и т.д. — но стандартный механизм «лампочка потухла — напряжения нет» — может не сработать…
                                            0
                                            как раз в общем случае, если выключатель смонтирован на фазе — я вижу свет — выключаю свет выключателем и убеждаюсь в пропадании напряжения в цоколе.

                                            А если лампочка одна и именно она и перегорела?
                                            0
                                            Вообще, конечно, в манифесте на месте 0 должна быть безопасность, но т.к. речь зашла о системах, доступных «из коробки» — видимо априори считается, что там система строится безопасно.
                                              0
                                              Параноидальная безопасность ведет к ухудшению пользовательского опыта. Поставить безопасность на первое место — сделать систему для идиотов.
                                              Необходимая безопасность уже описана в куче документов, касающихся сертификации пользовательских устройств. Более — исключительно по желанию. Максимум, на что я согласен — это в инструкции описать, чего делать не следует. Ну и какой-нибудь «режим обслуживания», в котором устройства фиксируются в том состоянии, в котором они сейчас. Кстати, используя схему с симистором, вы не можете быть уверены в разрыве фазы — это зависит от того, как вы коммутируете устройство при монтаже. Т.е. даже с точно выключенным устройством вы все еще можете поймать фазу на контакте. Решение — только двойное реле, которое рвет и фазу и ноль. Но ставить такое реле для защиты пользователя при ситуации, которая случается очень редко — глупость.

                                              Сорри, тут взрослый мир, и если пользователь не обесточивает оборудование при монтаже или лезет пальцем в патрон, то он идиот, и производители системы за его действия ответственности не несут. Ибо сказано было в священном руководстве «не сушите кота своего в машинке нагревательной»
                                                0
                                                «Параноидальная безопасность ведет к ухудшению пользовательского опыта. Поставить безопасность на первое место — сделать систему для идиотов. „
                                                В корне не согласен. Как ни крути — перед тем, как лезть в цоколь лампы — в идеале нужно выключить автомат, её питающий. Да, нужно идти в щит, искать автомат, выключать его, проверять напряжение (а в режиме паранойи — проверять напряжение и на входе реле, коммутирующего нагрузку) — всё это ухудшение пользовательского опыта, которое позволяет сохранить этому пользователю, собственно, жизнь.
                                                Порой действительно, подготовка к работе занимает в разы больше времени, чем непосредственно работа, но мы врядли можем с этим что-то поделать.
                                                С обесточиванием мы вроде так или иначе согласны — пользователь должен обесточивать систему перед началом работ.
                                                А как быть с восстановлением питания? Я восстанавливаю питание на питающем автомате и УД автоматически подаёт питание на лампочку? Во всяком случае, стандартная практика в промышленности — запрет автоматического запуска скажем, электродвигателей.
                                                Может ли моя система автоматически продолжать полив газона после восстановления питания?
                                                Может ли моя система автоматически включать то, что было включено до пропадания питания?
                                                Наверное компромисс — это диалог пользователю: “Питание восстановлено. Продолжить полив? При нажатии „да“ клапан откроется автоматически»?
                                                  0
                                                  А если пользователь уехал на две недели в отпуск, и именно для этого нужна автоматика… а она будет висеть со своим вопросом «продолжить ли» все оставшиеся 10 дней…
                                                    0
                                                    Ну автоматика умная должна быть — она дистанционно должна меня спросить «продолжить ли» (смс, емейл, телеграмм и т.д.)
                                                      0
                                                      Баланс на карточке закончился, СМС не может отправить…
                                                        0
                                                        Да все проще. Маньтёр василий лом в транс воткнёт, и ничего вы никуда не отправите.
                                                        Опять и снова какая-то дичь. Зачем-то централизованная система. Зачем-то безумная. А где тут «ум»? Если это гавно само за собой последить не может?
                                                        Далее можно привести еще 1500 дыр, размером с телефонную книгу, с описанием того когда и где оно откажет. И к этому в десять раз больше описаний того, к чему оно приведет.
                                                        Ну автоматика умная должна быть — она дистанционно должна меня спросить «продолжить ли»
                                                        Идиотство зашкаливает просто ага? Этот человек даже не понимает абстракции «ума»))) Разве умным считается тот, кто постоянно спрашивает что ему делать? Но вот до таких вот людей, которые даже с абстракцией «ума» определиться не могут — наипростейщие вещи и не доходят никогда. И уже никогда похоже и не дойдут.
                                                          0
                                                          Идиотство зашкаливает просто ага?

                                                          Я попрошу воздержаться от оскорбления участников данной дискуссии. Мне бы не хотелось нажимать кнопку «Report», потому что боюсь, что в этом случае снесут все ваши сообщения, а они важны для понимания контекста, и кроме того, имеют некоторый интерес в контексте понимания вашего способа мышления.
                                                            –3
                                                            А это не оскорбление) Почитайте и вникните уже в то, что филологически считается оскорблением, а что нет.
                                                            В данном же случае, например, в суде будет следующее: в определении будет сказано [опираясь на филологическую экспертизу], что оскорбления не было. А вот с вашей стороны — угрозы были, причем, вовсе не имеющие на то оснований.
                                                            Кнопки жать можете какие хотите) А вам это что даст-то? Подумайте. Впрочем вы и сами ответили уже)) Это хорошо.

                                                            Причем вы не учитываете того, что мне плевать совершенно, снесут там что-то где-то или не снесут. Я ничего не теряю совершенно. И не приобретаю тоже. А значит? А значит ваше действие мне безразлично по-определению))) Мне была бы разница, если бы вы ну например как-то ограничили мне доступ до того, что мне нужно. А здесь-то мне что нужно? Что тут я могу для себя нового словить? Ничего) А значит я ничего и не потеряю.

                                                            Выходит так, что ваша угроза во-первых безосновательна, а во-вторых еще и не приведет ни к чему. А теперь подумайте, почему вы это все не продумали заранее. И зачем вы пытаетесь совершить некие действия, которые ни к чему не приведут?
                                                              0
                                                              Спасибо, что прекратили срач.
                                                          0
                                                          Оповещение о заканчивающемся балансе заранее. Плюс имейл-телеграм. Второй модем в конце концов, если что-то критическое.
                                                      0
                                                      В корне не согласен. Как ни крути — перед тем, как лезть в цоколь лампы — в идеале нужно выключить автомат, её питающий. Да, нужно идти в щит, искать автомат, выключать его, проверять напряжение (а в режиме паранойи — проверять напряжение и на входе реле, коммутирующего нагрузку) — всё это ухудшение пользовательского опыта, которое позволяет сохранить этому пользователю, собственно, жизнь.

                                                      Тут вопрос в разделении границ ответственности. Я проектирую устройство и закладываю в него все, чтобы обеспечить безопасность его использования. Это означает, что на корпусе не будет потенциала, оно не сможет подать высокое напряжение на низковольтный разъем, там не будет контактов, за которые можно схватиться в процессе использования и получить удар током, и так далее.
                                                      Характерный пример такого дизайна — микроволновка. Вы не сможете включить микроволновку, пока дверца не закрыта, и вы не сможете получить ни 220v, ни 5kv на любой части корпуса. Однако, никто не рассчитывает защититься от пользователя, который целенаправленно заклинивает концевик и сует голову в микроволновку: это бессмысленно.
                                                      Тут я склонен придерживаться такого же подхода: устройство безопасно в процессе использования, но пытаться защититься от глупости пользователя, который, не обесточив систему, полез в патрон пальцем, несмотря на то, что замена лампы не требует этого делать, и вопреки предупреждению в руководстве «не обслуживать оборудование без отключения питания и не касаться токоведущих контактов частями тела», я не буду.
                                                      В данном случае, моя граница ответственности, как разработчика конкретного устройства — сделать устройство безопасным в использовании, а не сделать устройство, о которое будет невозможно убиться. Следование инструкциям и отключение питание устройств для их обслуживания — это уже ответственность пользователя.
                                                  0
                                                  Простите, но что вы ловите?)
                                                  Вы ЛАМПУ ловите или ВЫКЛЮЧАТЕЛЬ?)))))
                                                  Нет, ну правда, когда уже это прекратится?
                                                  Огромная проблема построителей «умненьких» систем в том, что они сами не понимают что хотят. Тем более они не программисты, а значит не учитывают «все», ибо все может учесть только программист.
                                                  Идем далее, только программист может построить вменяемое дерево абстракций системы. Это по-определению.
                                                  Следствие: берем лампу, ловим родителей/интерфейсы.
                                                  В первом приближении ИСПРАВНАЯ лампа имеет родительские интерфейсы iНагреваетсяable, iСветитable, причем враз. Не по-отдельности, а враз.
                                                  Покрутите абстракции, и получите ровно то же самое. Других интерфейсов уникальных для лампы нет. А значит вам нужно в патрон или сильно рядом с ним втыкать датчики нагрева и света, и естественно настроенные не абы как. Только так вы поймете — имеете вы включенную лампу или не имеете. Все остальное будет работать плохо.
                                                  Само собой интерфейс формы iFormable заведомо исключен из рассмотрения, т.к. он слишком сложен для детектирования формы лампы простейшими методами.
                                                  пс: но при этом интерфейс заполненности цоколя я бы все же не стал бы исключать, [как обозвать этот интерфейс одним словом даже и не знаю]
                                                    +1
                                                    Ржать. Огромная проблема «программистов» — считать, что их «вменяемое дерево абстракций системы» кому-то нахер сдалось. Я много раз видел таких программистов на железячных хакатонах. Их несложно заметить: они два дня подряд учитывают все и решают все проблемы, включая кучу тех, о которых никто, кроме них не задумывался, и задумываться не будет, ибо эти проблемы — существуют только в их голове или решаются на принципиально другом уровне.
                                                    В итоге — проработанный кусок штуки, о котором они задумались, и полнейший провал во всем остальном. И то, этот проработанный кусок — весьма своеобразен, ибо понимания железа и физических процессов, а так же ограничений реального мира близко к нулю.

                                                    Что вот вы пытаетесь решить своими интерфейсами iНагреваетсяable и iСветитable? Что на лампа светится и нагревается. Это в вашем идеальном программистском мире.

                                                    Что у вас получается в мире реальном? Напрямую с лампы мы эти значения получить не можем. Значит, ставим датчики температуры и освещенности. Что мы с них получаем? Некое значение температуры и уровня освещенности. Как трактовать конкретные значения? Да хрен знает, об этом вы уже не задумываетесь, целиком поглощенные деревом абстракций. А еще говорите, что только программист может учесть все.

                                                    А если лампа на улице в -20? В зависимости от мощности она будет или греться совсем слабо, или не греться вообще. В итоге вы получаете произвольную температуру от -20 до 60 градусов, и непонятно что с ней делаете.
                                                    А если лампа в бане? В зависимости от места установки температура будет от 0 до 60 градусов при холодной бане, и от 40 до 100 при горячей. Даже если забить на то, что вклад лампы в эту температуру может быть от нуля до 100%, все равно непонятно, как понять, работает сейчас баня или нет. Что же делать? Завести в лампу интерфейс «лампа находится в работающей бане»?
                                                    А если лампа слабая и светодиодная и не греется совсем?
                                                    А если на лампу светит солнце? А если на лампу светят другие лампы? А если на лампу могут светить другие лампы, а могут и не светить? А если лампа с отражателем и не светит в другие стороны? А если лампа светит в УФ-диапазоне?
                                                    Все эти вопросы остаются без ответа.
                                                    Мир несколько сложнее, чем представляют себе программисты, озабоченные построением правильных абстракций.

                                                      0
                                                      Что у вас получается в мире реальном? Напрямую с лампы мы эти значения получить не можем. Значит, ставим датчики температуры и освещенности. Что мы с них получаем? Некое значение температуры и уровня освещенности. Как трактовать конкретные значения? Да хрен знает, об этом вы уже не задумываетесь, целиком поглощенные деревом абстракций. А еще говорите, что только программист может учесть все.
                                                      Дерево абстракций строится вовсе не для ПО) Оно строится что бы понять общую систему. Общую логическую систему. И первым делом вообще пишется на бумашке. Потому что ни один человек дерево уровнем выше шести построить не может. Получается суммарная абстракция слишком сложная. А на это среднестатистические человеки не способны вообще. При этом итоговое ПО может писаться вообще на математике, что и делают. Ибо оно быстрее работает. Причем сильно быстрее. Накладные расходы на ООП иногда астрономические же…
                                                      А теперь вы расскажите, как вы будете реализовывать наличие работающей лампы вольтметром))) Ну так. Чисто поржать)
                                                      А если лампа на улице в -20? В зависимости от мощности она будет или греться совсем слабо, или не греться вообще. В итоге вы получаете произвольную температуру от -20 до 60 градусов, и непонятно что с ней делаете.
                                                      В патрон как минимум датчики поставьте. Вам же вроде написано — максимально близко. А это и означает — максимально близко. Вы как совсем не ООП — пытаетесь сходу реализовать интерфейсы) А это путь вникуда. И да — реализация интерфейсов — это не логика высших порядков, это логика кванторов — и она никому не интересна вообще. Потому что это всего лишь — детали. Да) Всего лишь детали. Нафиг никому не интересные.
                                                      И детали таковы, если уж совсем интересно. Пишите лог температуры патрона — этого достаточно. Если график более-менее похожий изо дня в день [НУ ВЫ ЖЕ ПАТРОН С ЛАМПОЙ НЕ ПЕРЕНОСИТЕ ИЗ ЭТОЙ ВАШЕЙ БАНИ НА УЛИЦУ В -40 И ОБРАТНО КАЖДЫЙ ДЕНЬ ЧЕРЕЗ ДЕНЬ ХАОТИЧНО], то получаемые данные и будут изо дня в день примерно усредненно в каком-то диапазоне. Причем все это вы можете здорово отслеживать. Контроллером. В патроне. Если что-то идет не так — все отключится) Само. При установке патрона с лампой в первый раз где-то — нажмите резет. Кнопку на патроне епт. Маленькую такую. Далее оно будет работать само, само за собой следить и т.д. и т.п.
                                                      И вообще, что-то мне сильно подсказывает, что физик все это дело махом посчитает. Ибо нагрев остывшей лампы идет с т=окр.темп., и каждые 10 грд. увеличивается по формуле, до какого-то предела. Все это дело запишите куда нужно, настройте и успокойтесь уже а) Если вы ничего не можете, то это не значит, что остальные не могут, ага?
                                                      Мир несколько сложнее, чем представляют себе программисты, озабоченные построением правильных абстракций.
                                                      Именно по-этому и стоят абстракции)) Что бы избежать сложностей не нужных. Но при этом суть одна. Логика должна соблюдаться. В пределах логики построенной логики абстракций. Оно упрощает жизнь и приводит систему в простой вид. Всегда. Не устраивает моя логика — постройте свою. Вам кто мешает-то? Это всего лишь пример был. Гипотетический. Наверние побольше реальности. Только в интерфейсы не суйтесь. И да, я так понимаю что у вас это не получится. Потому что судя по написанному выше — вы вообще не понимаете зачем нужен интерфейс как абстракция. И что он дает. Обратитесь к вменяемому человеку. Те программисты которых вы хаете — вполне вероятно не понимают зачем оно. Ищите понимающих. Они все вам разрулят, и жизнь сильно упростят)
                                                        0
                                                        И да. Поймите простую вещь уже. Логика высших порядков немножко побольше будет описанием, чем это ваше ООП. ООП — это всего лишь мелкое подмножество. Человек сильно подкованный в логике — способен на очень многое. И да — такой человек чрезвычайно четко поделит задачу на логические куски, все отследит, много лишнего отбросит и т.д. и т.п. То же ООП — это всего лишь логика) И вы этой логикой пользуетесь каждый день. Она дает результаты и очень быстрые результаты. Практически мгновенные. И вы похоже не совсем понимаете, что оно дает.

                                                        Давайте пример, на пальцах.

                                                        Есть телефоны высшего и низшего ценового диапазона. Найдите самый лучший телефон в этих ценовых диапазонах, причем поиск должен быть реализован на пальцах) Условно говоря сильно тормозным контроллером — например человеком. Без бумашки)
                                                        Логическое решение. Строим дерево, смотрим, преобразовываем и т.д., получаем ответ: В низшем ценовом диапазоне нужно искать в телефонах хорошие параметры, потому что их очень мало. А плохие параметры у этих телефонов все равны, и они плохие. А значит перебор этих параметров ничего не даст. В этом случае перебор сокращается до пяти пальцев. Да, телефонов много, но хорошего в них мало) Хорошее и перебирайте. И перебор у вас грандиозно сократится)))) И так вы найдете в уме без бумашки [читай — сильно ограниченный контроллер] лучший телефон в низшем ценовом диапазоне, очень быстро найдете.
                                                        С высшим ценовым диапазоном ровно так же, только с точностью до наоборот. В этих телефонах нужно искать плохое. Потому что плохого там очень мало) А хорошее там все одинаковое — ну и нафиг вам одинаковое перебирать-то? Смысл в чем?

                                                        Человек, вы сильно недооцениваете логику абстракций))) Пока не поздно — пересмотрите свое так называемое мнение. И тут понятное дело, что вы с этим вообще не связывались, да и разбираетесь в этом как свинья в апельсинах, но хаете зачем-то)

                                                        И да. Не всякий пишущий ООП — понимает что он пишет) Имейте ввиду. Большинство — тупо пишут не понимая что они делают. Тем более — не понимают логики написанного. Уже встретьте реального программиста логики — вы в шоке будете от увиденного, я вам гарантирую.
                                                          –2
                                                          Как выше написано — интерфейс заполненности цоколя я бы не стал исключать.
                                                          А теперь думайте дальше. Но думать дальше абстракциями — вы не способны)))
                                                          И я тоже. А мне это и не нужно. Потому что я всего-то построю дерево абстракций и сходу получу решение. Логическое))))
                                                          За пять секунд.

                                                          Интерфейс заполненности наследует интерфейс вкручиваемости. И он точнее. Он логически точнее. Это следствие логического построения абстракций. Вы реально не вкуриваете что ли ПРОСТЕЙШИЕ ВЕЩИ?))))

                                                          Уточняем интерфейс. Оно должно ловить не заполненность. Оно должно ловить вкручиваемость.
                                                          А значит поставьте на резьбу цоколя последовательно по резьбе кнопки. Они и должны последовательно замыкаться при реализации интерфейса вкручиваемости)
                                                          И таким образом и только таким — вы получите замкнутую цепь. При этом — кнопки — это реализация интерфейса. Всего лишь. Вы можете капать и дальше. И найти еще более точное логическое решение. Но как вы будете реализовывать этот интерфейс — это всего лишь детали, и они не интересны.

                                                          Это уточнение — это СЛЕДСТВИЕ ЛОГИЧЕСКОГО ПОСТРОЕНИЯ))) ВЫ РЕАЛЬНО ЧТО ЛИ ДУМАЕТЕ ОНО МНЕ С ПОТОЛКА УПАЛО?)))) ахаха!) Ну нет же… Такого быть НЕ МОЖЕТ)
                                                          Берете абстракции, разруливаете — получаете нереально новые штуки. Сходу, быстро, мгновенно. Это дерево всего лишь двухуровневое, заметьте. Если начну строить шестиуровневые деревья — у вас от увиденных преобразований волосы на яйцах зашевелятся.

                                                          Итог: реализация оного грандиозна) Ибо эта реализация даст ток в цоколь тогда и только тогда, когда будет произведено последовательное замыкание кнопок [например], а это означает одно и только одно — в цоколь нужно что-то вкрутить. Само собой пытливый юзир взломает оную систему)))) Но! Вы можете поставить защиту от взлома. Если пытливый юзир будет отверткой нажимать кнопки, ТО КАК ОН БУДЕТ ИХ НАЖИМАТЬ?)))) Естественно хаотично. Отследите хаос. И блокируйте любой хаос. Блокируйте ток на патрон, при любой попытке нажимания кнопок не в установленном порядке. Условно говоря вы должны отследить последовательное нажатие. Если у вас есть кнопки А, Б, Ц, Д. То вкручивая лампу — они нажимаются АБЦД. НАЖИМАЮТСЯ ОНИ С КАКОЙ СКОРОСТЬЮ ПО ВРЕМЕНИ???? ВЫ ЭТО ТОЖЕ ОТСЛЕДИТЬ НЕ МОЖЕТЕ ЧТО ЛИ?)))))) А когда выкручивается лампа — кнопки отжимаются в обратном порядке — ДЦБА. Это нормальные и дозволенные режимы нажимания кнопок и их отжимания. Любые иные нажимания/отжимания — должны привести к немедленной блокировке патрона) И т.д. и т.п.

                                                          ПОНЯТНО НЕТ???? ИЛИ ВЫ СОВСЕМ НИКЧОМНОЕ СУЩЕСТВО???
                                                          УЖЕ ДЕЛАЙТЕ ДЛЯ ЛЮДЕЙ!!! А НЕ ДЛЯ СКОТОВ!!! ЭТО РЕАЛЬНО ТЯЖЕЛО ЧТО ЛИ ПОНЯТЬ????
                                                            0
                                                            Кнопки, абстракции это хорошо но облом ждёт дальше по цепочке реализации — этим кнопкам нужна связь с центральным контроллером, например, как? Проводами? Радио? Вопрос надёжности — одна кнопка откажет и ваш алгоритм поломается к чертям, при выкручивании лампочки распознает как ложное нажатия не в нужной последовательности и не снимет напряжение… то же самое при отказе физического интерфейса к этим кнопкам… программно выглядит как благо такое решение, но на физическом уровне при окончательной реализации этого всего начинаются грабли и камни. Поэтому досихпор из этого всего реализовано только контроль по датчику тока на стороне контроллера.
                                                              –2
                                                              Централизация — это зло. Децентрализация и только.
                                                              Централизация допустима в одном случае. Если система изначально децентрализована, а затем и только затем — централизована. Например блокчейн. Все остальное свалится и работать не будет.
                                                              Каждому патрону по контроллеру. Это необходимость. Иначе никак.

                                                              Вопрос надёжности — одна кнопка откажет и ваш алгоритм поломается к чертям
                                                              Вопрос надежности давно решен. Но вам это не очевидно же) Потому что вопрос абстракций и как они применяются — неведом. Я абсолютно ничего нового не придумываю. Где взять надежные кнопки, уже работающие как лет двести, а может быть и триста? В замке.
                                                              Патрон-лампа — это банальщина полнейшая. Это система — ключ-замок. Но что бы это понять — нужно абстрагироваться сначала вверх по дереву абстракций, а затем вниз, и получить готовые деревья реализации.

                                                              Итак, имеем: кнопки-сувальды, работают 100000 раз по заявлению разработчиков, т.е. обеспечивают надежность открывания-закрывания замка 100000 раз. И я сильно сомневаюсь, что вы лампочку будете вкручивать 100000 раз))) Какая вам еще надежность нужна-то? Она и так грандиозно избыточна.

                                                              Идите к инженеру по замкам — он вам замок в патрон и вставит. Соберите т/з вменяемое, задача в принципе решена.
                                                              одна кнопка откажет и ваш алгоритм поломается к чертям
                                                              Для этого и хэшируют состояние системы, любой, в том числе и механической — какая разница вообще — какая система-то?
                                                              У вас например 4 сувальда — четыре кнопки.
                                                              Вы должны во-первых отследить по времени их нажатие.
                                                              А во-вторых последовательность нажатия.
                                                              Выше оно написано же.
                                                              Все это даст хэши состояний.
                                                              Запишите какие хэши «откроют» контроллер, а какие «закроют».
                                                              И да, оно даст во-первых внешнюю диагностику состояния системы, т.к. вы можете собрать состояния всех хешей и сопоставить эти состояния как конкретные наборы состояний системы.
                                                              А так же оно позволит самодиагностировать систему, т.е. точно знать что и где идет не так, но т.к. внутренний контроллер ограничен в возможностях — самодиагностика не полная же… Полная вряд ли будет доступна, ибо контроллер максимально дешевый и тупой, и никак не быстрый.
                                                              Внешнее же подключение даст полную диагностику системы кнопок-сувальдов, и полную картину неисправности. Любой неисправности.
                                                                +1
                                                                Это многократно усложнит конструкцию такой простой вещи как патрон для лампочки(который кстати надо было забыть ещё 20 лет назад) а значит неизбежно уменьшит её надёжность.
                                                                хеши состояний? ну да ну да… сработала первая кнопка, вторая не сработала, потом третья и тут проснулась вторая, всё… хеш соответствует «случайному нажатию» и напряжение не снимается. кнопки-сувальды… в ПАТРОНЕ для лампочки(E14, например)? Патрон будет стоить как позолоченный, а значит никому не нужный. Причем это решение проблемы «раз в год с вероятностью 1E-4 в патрон человек МОЖЕТ засунуть пальцы и умереть». Т.е. по сути одно событие за 10000 лет на одну человеко-лампочку вы предлагаете повысить стоимость системы в десятки раз?
                                                                  0
                                                                  сработала первая кнопка, вторая не сработала, потом третья и тут проснулась вторая
                                                                  Чёёёё?))))
                                                                  Вы вообще понимаете достаточно вменяемо, что такое хэш состояния?

                                                                  У кнопки А есть значение, у Б тоже и т.д.
                                                                  У времени есть значение, у каждой условно 0.1 секунды есть значение.
                                                                  Соберите ВСЕ эти значения и по хэширующей формуле получите хэш состояния.
                                                                  Допустимые значения хэшей запомните изначально.
                                                                  Как меняются эти хэши допустимой цепочкой — запомните тоже.

                                                                  Условно на вход идут х0, х1, х2, х3, в этих хэшах состояния системы. Если оно на вход подается НЕ ТАК — отключайте все нафиг.
                                                                  И ровно такая же цепочка x3, x2, x1, x0 тоже допустима.
                                                                  И естественно тут сразу видно, что нет смысла цепочки хранить, ибо проще и эти значения цепочек захешировать и получить хэш от хэшей.

                                                                  Т.к. юзера вкручивают лампочки по-разному, имеется ввиду по-времени по-разному — у вас будет много хэшей. Но не так много как кажется) Это и есть допустимые хэши состояния системы.
                                                                  Само собой хэширующая функция с потолка не возьмется. ТАк на это математики есть. Они соберут вам нужну функцию, быструю и дающую минимальное кол-во коллизий. И это же примитивно) Если вам нужно совсем отказоустойчиво — применяйте более сложную криптографию, почему нет-то?

                                                                  Как только контроллер обнаруживает нужный хэш — включайте вторую часть контроллера, которая собирает данные по теплу и свету.
                                                                  Ну а как иначе-то?) Если вы лампочку вкрутили — вы тогда и мониторьте свет и тепло.
                                                                  И в обратную сторону. Выкрутили вы лампочку — нашли хэш выкрученной лампы — перестаньте мониторить тепло и свет. Логика. Или опять нет?
                                                                  вы предлагаете повысить стоимость системы в десятки раз?
                                                                  Почему в десятки?) Цена возрастет раза в три. Всего-то…
                                                                  Слушайте, а вы зачем мебелью пользуетесь?)) Вот там действительно избыточность космическая. Там лаки, пластики, шпоны всякие и ткани и чорти чего только нет) Один лист дсп вам делают применяя сотню технологий. Вы доски соберите вон в кучу, валёжника вон пойдите соберите в лесу, вам вроде разрешили — свалите в кучу и спите на нем.
                                                                  сработала первая кнопка, вторая не сработала, потом третья и тут проснулась вторая
                                                                  Вы замок так же открываете?)))) Почему там срабатывает все, а у вас вдруг не сработает? Вы к вменяемому конструктору замков обратитесь — он вам кнопок как в замке, только уже в патрон на резьбу и поставит. И все будет работать. Так же надежно как в замке)
                                                                    0
                                                                    В замке нет контактов.
                                                                    И вообще, вы когда видели надёжную кнопку и вместе с этим дешёвую? Экономят на материалах, копейку сэкономят а надёжность в 1000 раз падает от нарисованных цифр. Не будет это работать. Экономика не позволит… надёжность патрона упадёт до такого уровня, что его надо будет менять вместе с лампочкой. И всё это в погоне за прибылью. А так-то всё можно сделать и надёжно. Только кто за это заплатит?
                                                                    Сейчас-то патроны рассыпаются после трёх лет эксплуатации, а вы хотите туда какую-то микромеханику вставлять, контакты?

                                                                    Эти ваши кнопки — палка о двух концах. Если сделать так что «чуть что отключаем всё нафиг» то ваш патрон будет выходить из строя часто выдавая ложный сигнал по поводу и без. И будет постоянно гаснуть свет, потому что видители контакт в патроне от нагрева отошел.
                                                                    Кстати это ещё вопрос насколько надёжно замки будут работать при температуре в 100 градусов, как правило замки-ширпотреб на улице считается одноразовым — один раз его закрыл и через год его только спиливать. Почему вы считаете что в патроне, с удешевлённым производством всё будет гораздо лучше?
                                                                    0
                                                                    Это многократно усложнит конструкцию такой простой вещи как патрон для лампочки(который кстати надо было забыть ещё 20 лет назад) а значит неизбежно уменьшит её надёжность.
                                                                    Вы про надежность вообще ничего не говорите. Если бы не вменяемые люди — вы бы винчестер не получили бы никогда. Вам дали сверхнадежную штуку — так вы радуйтесь. Но что бы получить такую надежность, каторая сильно близка к 100% — нужно неимоверно усложнить систему. Если нужна надежность действительно 100%, а такое тоже возможно — собирайте криптографию по всем элементам системы. Получите 100% надежную систему. Только это будет стоить уж слишком дорого, а кое где пока оно не реализуемо физически.
                                                                    Но там где можно реализовать надежность — так пихайте туда это)) Почему нет-то?
                                                                      0
                                                                      Какой ценой? За всё надо платить. Кто будет оплачивать банкет? То что можно нафаршировать систему обеспечивая надёжность не означает что это будет экономически оправдано при массовом производстве. Почему автомобили не делают с титановыми капсулами спасая пассажиров в случае аварии? решение-то надёжное… но поди ж ты, специальные меры предпринимаются только в отдельных случаях, там где денег вкладывается много.
                                                                      –3
                                                                      И да, вы выбрасываете на «умненькие» дома килотонны денег) Но оно вам ничего не дает. Потому что не дает. Ничего.
                                                                      Вы выше прочтите — мысль идет же для «умненького» дома.
                                                                      Только где тут «ум», если ваш патрон САМ понять не может, вкрутили в него лампу или членом лезут?
                                                                      Сдохла лампа или нет — не может понять. Какую лампу вкрутили — не может понять. Все на уровне каменного века. Защита электрическая — нулевая. Защита от взлома — нулевая.
                                                                      Слушайте, да взубы вам вольтметр. Делайте что хотите. И да, нихрена вы не сделаете, даже если вам разжевать и в рот положить. Рот же вольтметром занят. А на более вы в принципе не способны. так и будете сидеть с вольтметром еще лет триста всей страной, причем имея собственных ровно два вольтметра на всю страну, а вам более и не нужно нихрена.
                                                                        0

                                                                        Сорри, что вмешиваюсь в спор, но ничего, что для начала стоило бы рассмотреть решение задачи каким либо другим, более простым способом и за одно понять а нужно ли решать ее вообще?
                                                                        Например, я бы даже не задумался о всяких пользователях, лезущих самостоятельно менять лампочку, так как:


                                                                        • УЗО уже есть почти в каждой квартире, то есть защита от полного дурака уже есть
                                                                        • новые светильники вообще решили проблему кардинально — там стоят LED и поэтому в замене лампочки они вообще не нуждаются.

                                                                        А то тут уже три выключателя на резьбе шаманят, и чуть ли не патент наклевывается, но что-то мне кажется, что это никому не нужно.

                                                                          0
                                                                          А светодиодные модули и драйверы совсем менять не надо будет? так или иначе понадобится поменять то что непосредственно контачит с сетью.
                                                                          А ведь для защиты достаточно просто поменять конструкцию разъёмов. Хотя нет. Это не поможет. Ведь тогда туда полезут МЫТЬ ВОДОЙ… «я же не пальцами туда, а тряпкой...».
                                                                          Кстати путь тока неисповедим… УЗО не защитит от пути тока фаза-человек-корпус_светильника-нулевой_провод…

                                                                          И вот тоже непонятно, зачем эти сложные проверки если достаточно определять наличие тока в лампе — нет тока и уже не важно нет там лампы или она сгорела полностью надо отключить подачу тока туда до тех пор пока пользователь не подтвердит что проблема устранена или проверку выполнять низким напряжением. Но даже это всё не имеет никакого значения если напряжение будет отключаться НЕ МЕХАНИЧЕСКИ. А что это значит? Старый добрый автомат… или сотни механических реле, прогресс на лицо. Да даже реле не может считаться надёжным — оно прекрасно залипает или система ошибочно может его включить в самый неподходящий момент несмотря ни на какие хеши состояний и программные блокировки. Надёжность может обеспечить только видимый механический разрыв цепи.
                                                                            0

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


                                                                            Кстати, путь тока вполне исповедим — токопроводящие части корпусов электроизделий принято заземлять.

                                                                              0
                                                                              Принято… но на практике чего только нет. Заземлят… но потом перепутают фазу с нулём…
                                                                                0
                                                                                Заземлят… но потом перепутают фазу с нулём…

                                                                                Если фазу с нулем перепутают, то это не страшно. А если землю с нулем — то тогда при первом же включении лампочки и выбъет это самое УЗО.


                                                                                Ну зачем вы выдумываете эти случаи? Трехпроводная схема с УЗО недаром из-за того и придумана в мире, что есть самая дурако- и идиотоустойчивая. Она решает именно проблемы с теми, кто по глупости или случайно засовывает пальцы в розетки.

                                                                                  –1
                                                                                  Ну зачем вы выдумываете эти случаи?
                                                                                  Это вовсе не выдуманные случаи.
                                                                                  Слушайте. Вы где живете вообще?
                                                                                  Я — в реальном мире. Вы — похоже в каком-то мире сильно виртуализированных дибилков. Уж извините. Но НА ТАКОЙ БРЕД Я ПО-ДРУГОМУ УЖЕ ПИСАТЬ НЕ МОГУ.
                                                                                  Вы что реально думаете, что везде стоит УЗО, да еще и работающее ага? Везде есть земля ага? Везде она не рваная ага? И т.д. и т.п.
                                                                                  ОПОМНИТЕСЬ! ВЫ ГДЕ ЖИВЕТЕ-ТО???

                                                                                  Крайне рекомендую пройтись по вашему дому. В половине квартир вы заземление просто не найдете. И т.д. и т.п. Уж про частный сектор я вообще просто ничего не буду писать вообще…
                                                                                    +1

                                                                                    Живу в Германии. Прошелся по дому, по офису — везде есть УЗО, везде есть заземление. Извиняюсь, а ВЫ где живете? В старой хрущевке под снос?
                                                                                    И собираетесь вкручивать умную лампочку в квартире со старой проводкой? Так вы еще Теслу начните заряжать опять же от своей проводки — придумаете еще множество интересных изобретений, чтобы не спалить свой дом нафиг.


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

                                                                                      –2
                                                                                      Реальный мир следующий:
                                                                                      Если что-то умное — то оно умное везде.
                                                                                      Все остальное — бредятина по-определению.

                                                                                      Еще раз и опять. Слушайте, вы правда похоже… Мда… Ну суйте все что хотите в розетки) Оно вас спасет? Вы перебором тестовым и найдете ту самую розетку, где порвана земля, или УЗО сдохло. Но вам это уже не поможет.

                                                                                      Если стоит УЗО — оно по-определению исправно? Если стоит розетка с землей — значит земля по-определению есть?
                                                                                      Слушайте… Я уже и не знаю что комментировать на такую логику коня. Матами что ли комментировать уже?
                                                                                        0
                                                                                        Вся эта фигня что вы описываете — она не 100% отказоустойчива. Тем более что она человеко-зависима. А это уже по-определению фейл. Да, это работает. Но в некоторых случаях — нет) Где тут «ум»? Его опять нет, понимаете? Оно не может САМО следить за собой. Оно не может вам сказать быстро и 100% точно что и где менять. Слушайте, оно ничего не может)
                                                                                        И в контексте всего этого «умного», которое здесь городят с превеликими потугами и выдают за некий «ум» — так это смешно)))
                                                                                        ПОТОМУ ЧТО ЧТО БЫ ТУТ НЕ ГОРОДИЛИ — УМА НЕ ДОБАВЛЯЕТСЯ ВООБЩЕ) Оно как было убого — так оно и остается убогим.
                                                                                        И вот это и забавляет больше всего)))) Т.е. забавляет сам факт того, что некие «умостроители» даже не понимают, что в их якобы «поумневшие» системы вообще ничего нового «умного» и не добавлено.
                                                                                –1
                                                                                А ведь для защиты достаточно просто поменять конструкцию разъёмов. Хотя нет. Это не поможет.
                                                                                Естественно не поможет))
                                                                                Ахаха! Слушайте, вы правда человек?) Сомневаюсь… Любые части разъема как части — воссоздаваемы. Более того — части разъема обычно простые. А значит воссоздаются просто. Например перебором всего что вокруг, и нахождением копии) Дети потому и суют гвозди в розетки, ИБО ДАЖЕ ДЕТИ ПОНИМАЮТ ИНТЕРФЕЙСНО, ЧТО ШТЫРЬ ВИЛКИ И ГВОЗДЬ — ЭТО ОДНО И ТО ЖЕ) А ВЫ — НЕ ПОНИМАЕТЕ)))) Тут нужно всего-то перебрать интерфейс формы, а с этим справляется даже ребенок, но не вы) Как такое может быть вообще? У вас — может.

                                                                                Вывод: Какую бы вы конструкцию не городили — все равно ее взломают. До вас это правда не доходит что ли? Тупым перебором абстракций и взломают. Хотя о чем я говорю — опять и снова вы ничего не понимаете же.

                                                                                Решение общее: Вы логически должны контролировать вашу конструкцию разъема. Банальное и опять же скопированное решение есть уже. Шарики подоприте пружинками как в замке и поставьте куда хотите.
                                                                                В обычной розетке это опять же просто. ЛОГИЧЕСКИ РАССУЖДАЙТЕ!!! Вы первым делом в розетку суете штыри. НЕ ОДИН, А ДВА! Значит шары подпертые пружинками должны штырями отпереться почти враз. И никак иначе. Это всего навсего означает лишь то, что суют в розетку что-то напоминающее штыри, но ВРАЗ суют, понимаете? Уже хорошо)) Но можно сунуть два гвоздя враз. Тяжело, но можно. Опять дыра. Ставьте хотя бы пару шариков по линии гнезд розетки, с той целью, что эти два шарика тоже враз, но ПОСЛЕ штырьковых шариков тоже должны откатиться. Это будет означать заполненность розетки самой вилкой. Не штырями вилки, а самой вилкой.

                                                                                Слушайте, вы что правда интерфейс заполненности мозгами во-первых не видите, а еще и банально его реализовать не можете?)))) КАК ТАКОЕ МОЖЕТ БЫТЬ ВООБЩЕ???

                                                                                Тем более оно уже есть, оно уже реализовано, на примере патрона. Какая разница как и где ловить заполненность? В замке она ловится прекрасно. В патроне ровно так же будет ловиться прекрасно. В системе розетка-вилка ровно так же будет ловиться прекрасно.

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

                                                                                И я опять ничего не придумал))) ЗАЧЕМ??? Оно готовое уже есть, его полно. Достаточно опять и снова смотреть на все это дело всего лишь абстракциями, и отслеживать логику. Как логику абстракций, так и логику убогую. Но вы ни на то, ни на другое не способны.
                                                                                  –2
                                                                                  И ВАША СРАНАЯ РОКЕТА ПОТОМУ И УПАЛА!!! ПОТОМУ ЧТО ЕЕ КОНЧЕНЫЙ ДЕБИЛ ПРОЕКТИРОВАЛ! КАТОРОМУ ЛОГИКА НЕВЕДОМА!
                                                                                  КАК МОЖНО ВООБЩЕ НАДЕЯТЬСЯ НА ОДИН ПОДПРУЖИНЕННЫЙ ШАРИК??? КАК МОЖНО БЫТЬ НАСТОЛЬКО ФЕЕРИЧНЫМ ДЕБИЛОМ???
                                                                                  А вот на несколько ЛОГИЧЕСКИ поставленных шариков там где нужно — уже надеяться можно.

                                                                                  Ибо штыри подпертые шариками — это реализованный интерфейс заполненности штырями. Причем враз.
                                                                                  А уже после этого контролируйте откат шариков самой розетки, и вы проконтролируйте интерфейс заполенности розетки самой вилкой.
                                                                                  И самое главное — вы можете отслеживать логику.
                                                                                  Сначала у вас должны подпереться шарики со штырей. Враз. Именно враз. С минимальной задержкой.
                                                                                  А затем, понимаете, затем, ибо это логически верно — уже затем подпираются шарики от загоняемой вилки в розетку.

                                                                                  Если вы так будете контролировать систему — то она действительно получится вполне себе годной.
                                                                                  Да еще и совместимой со старыми системами, нет? Зачем вы какие-то новые конструкции собираетесь городить? Там где-то выше про деньги писано. Слушайте, ВЫ ЧТО РЕАЛЬНО ДУМАЕТЕ, ЧТО ВАШИ ПОДЕЛКИ ПРИМУТ В КОНЯДЕ?)))) И ВЕСЬ МИР РАДОСТНО ПОВИЗГИВАЯ НА НИХ ПЕРЕЙДЕТ?)))) АХАХА!
                                                                                  А меня еще считают невменяемым… Ага… ага…

                                                                                  Выводы очевидны не?
                                                                                  0
                                                                                  Для начала: вы не понимаете что такое абстракции.
                                                                                  Решение ваших так называемых задач — сводится к решению логики второго порядка. Вы готовые интерфейсы и виртуальные методы реализуете, и то убого.
                                                                                  Но кто вам их подбрасывает? Оно откуда берется-то?
                                                                                  Совсем на пальцах: вы выше пишете реализации интерфейсов. Но откуда взялся этот интерфейс — вы не пишете.

                                                                                  Ваши рассуждения дырявые. Извините. УЗО щщолкнет. Все равно щщолкнет. Не убьет. Но щщолкнет. Приятно? Нет. Оно вам надо? Нет. Это полумера. Никогда не соглашайтесь на полумеру, ибо это костыль.
                                                                                  УЗО отказоустойчиво? Нет. Оно 100% сработает? Конечно нет) Ну если вы так уверены в УЗО — смело суйте все ваши члены во все розетки и патроны.

                                                                                  Новые светильники — избыточны. Это костыль. По-сути, покупая новую лампу без разницы какую — вы покупаете БП с ней. Это что — нормально?) Но вы смело переплачиваете за БП. Еще и кривой. Они же все кривые. И оно только потому, что нормальный БП почему-то не сменный. Ну в компьютере же сменный БП? Купили и пользуйте. В люстре сменный БП? А может быть в лампах они сменные? Полнейшая логическая бредятина. Но вы эту бредятину зачем-то приводите в пример, и на нее равняетесь. Зачем?

                                                                                  И снова и опять. «Умненький дом» рассматривается. А значит патрон по определению должен быть умным. Все что есть — должно быть умным. Чего бы это не стоило — не имеет значения это.

                                                                                  Не три выключателя, а четыре. И не шаманят, а рассчитывают. И не на резьбе, а в резьбе. И патент нахрен никому не нужен. Ибо поставьте пятую кнопку — это будет другой патент. Не нравится?) Ахаха! А вот рашынская патентная система такое позволит. Ибо она настолько тупая, что она ЗАЧЕМ-ТО ПАТЕНТУЕТ РЕАЛИЗАЦИЮ ИНТЕРФЕЙСА, А НЕ САМ ИНТЕРФЕЙС.
                                                                                    +1
                                                                                    УЗО отказоустойчиво? Нет. Оно 100% сработает? Конечно нет)

                                                                                    Вы забываете, одну простую вещь — для того, чтобы пользователь все же долбанулся током, должно быть соблюдено несколько условий одновременно:


                                                                                    • не отключен питающий автомат
                                                                                    • неправильно подключенная люстра
                                                                                    • полезть руками к токопроводящим частям
                                                                                    • неисправное УЗО

                                                                                    Даже при всем желании вероятность наступления этих условий одновременно для обычного пользователя практически равна нулю. Для идиота — нет, но таких людей в мире слава богу не так уж много и заметьте, даже идиота защищает как минимум одна техническая система. То есть идиот, да еще и с неисправным УЗО. Поэтому даже идиот не сможет так легко долбануться током.


                                                                                    Так зачем изобретать?


                                                                                    По-сути, покупая новую лампу без разницы какую — вы покупаете БП с ней. Это что — нормально?) Но вы смело переплачиваете за БП. Еще и кривой. Они же все кривые. И оно только потому, что нормальный БП почему-то не сменный. Ну в компьютере же сменный БП? Купили и пользуйте. В люстре сменный БП? А может быть в лампах они сменные?

                                                                                    Первый вопрос: и часто вы тот сменный БП в компьютере меняли без замены всего компьютера? И давайте тогда в автомобилях придумаем так, чтобы они все шли без КПП. А чего уж — КПП ж долго служит, так зачем покупать автомобиль вместе с ней?

                                                                                      0
                                                                                      А эти ваши авто и идут со сменными КПП. В кавычках. Это вопрос времени) Вы и тут не поняли. Или не совсем в курсе. Все что щяс ставят в новых авто — так и называют — расходник. Уже пол-мошыны — расходник. Скоро всю мошыну будут продавать как набор расходников. Это же выгодно. Вам колодки или диски нормальные не поставят щяс никогда. Потому что идите и купите новые через пол-года. Разве в уазике такое было? Да там колодки вообще никто не менял никогда, зачем? Но в новой параше вам их изначально ставят тонкие, что бы вы пошли через пол-года купили новые. И если оно не дошло до коробок еще, так погодите — дойдет и до них) Это всего лишь вопрос времени. Вам в новую парашу будут ставить и каробки картонные и почти одноразовые, что бы вы через пол-года шли покупали новую коробку. И так и будут писать — это расходник) Ходит 20тыс., меняйте.
                                                                                      И да, про мошынки вы не туда совсем. Там совсем жоский лютый обман. Повсеместный. И будет еще хуже.
                                                                                      БП в кампутерах тут ни при чем вовсе. БП в кампутере — это выбор. И да, может быть я и не менял никогда БП, а причем тут это? Я могу выбрать что мне надо. С лампой или люстрой у вас такой фокус не пройдет… Более того, еще раз — сравнение не уместное. Лампа работает год? два? БП на нее сколько работает? Если это вменяемый БП? ДЕСЯТЬ ЛЕТ? ДВАДЦАТЬ? Но вы его выкинете вместе с лампой…

                                                                                      И еще момент — вы покупаете лампу — вы разве видите модель БП в ней?) Почему покупая лампу — я не вижу то, какой БП там? Почему покупая люстру — я не вижу какой там БП? Пусть он будет встроенный и не сменный. Но какой он? Это же нигде не написано вообще.
                                                                                      В кампутере БП — ЭТО ОТДЕЛЬНАЯ ЛОГИЧЕСКАЯ ЧАСТЬ) Понимаете? Это абстракция. Обособленная. В люстре же это почему-то считается неотъемлимой частью люстры, что естественно снова и опять — логическая бредятина.
                                                                                      Но вас это устраивает))))) Вообще, знаете, мне что-то усиленно начинает казаться примерно уже как лет десять, что чем больше бреда в этом мире — тем больше этот бред устраивает чилавеков. И к чему оно приведет-то в итоге?)
                                                                                        0
                                                                                        В кампутере БП — ЭТО ОТДЕЛЬНАЯ ЛОГИЧЕСКАЯ ЧАСТЬ) Понимаете? Это абстракция. Обособленная. В люстре же это почему-то считается неотъемлимой частью люстры, что естественно снова и опять — логическая бредятина.

                                                                                        Те вы даже не задумывались, почему БП в компьютере — это отдельный логический блок, а в лампе нет? Мне вас жаль.
                                                                                        Подумайте еще почему в телефонах встроенные батареи, а в пульте от телевизора — нет. А еще почему в телевизорах, стиральных машинах и чайниках встроенный блок питания, а в ноутбуках — нет?

                                                                                          0
                                                                                          Подумайте еще почему в телефонах встроенные батареи
                                                                                          Это было до определенного времени вообще-то. А теперь вы подумайте, почему оно было до определенного времени. А затем превратилось в колхоз.
                                                                                          На упреждение: Не надо говорить, что увеличение толщины тилипона на 2мм как-то на вас повлияет)))
                                                                                          Мне вас жаль.
                                                                            –1
                                                                            Поэтому досихпор из этого всего реализовано только контроль по датчику тока на стороне контроллера.
                                                                            По-этому до сих пор ваши рокеты и падают))))
                                                                            Ибо всем вмеяемым известно, что 100% отказоустойчивая система — это криптографически устойчивая система ко взлому, причем имеющая на это строгое математическое доказательство.

                                                                            И только в этой стране этого не понимают))))
                                                                            Решение: на каждый провод контроллер поставьте. Который запускается по определенному сигналу. Запускаясь — контроллер начнет подмешивать сигнал, который можно интерпретировать как последовательность чего-то, например нулей и единиц)
                                                                            Имеем: запускается система из кучи сплетенных и как-то смонтированных проводов, и на каждом куске — контроллер.
                                                                            Прицепившись в начало и диагностируя то что выдают контроллеры в сумме — вы и получите уникальный хэш.
                                                                            По табличке соответствия хэшей неисправностям — получите сразу указание того, где что не там прикручено.
                                                                            Более того, можете это все хранить удаленно на серваке) Что бы шаловливые ручьки свои хэши не нафигачили. Эти ручьки и не должны знать заранее какие хэши приводят к исправному состоянию.
                                                                            Подключил монтер рокету к серваку — проводка проверилась московским серваком и выдала ответ — не тот хэш) Переделывай там-то и там-то.
                                                                            И это дает сразу грандиозные вещи, абсолютно везде.
                                                                            У меня дома так проводка прокинута))) Да, на хэшах и очень слабых контроллерах. Баловство, я понимаю. Но по хешированию я могу точно знать, где что отвалилось сразу же. Я же не дурачек с тестером лазить по рокете и проверять соединения)))) Я вроде в 21-ом веке живу, ага?
                                                                            Тем более что проверяя что-то — я тупо могу разрушить то что проверено, и что мне это даст-то? Идиотам оно что-то дает, только что оно дает — вообще непонятно…
                                                                          –1
                                                                          И это я еще даже хэшировать абстракции даже и не пытался)))
                                                                          Вы в курсе, что абстракции можно хэшировать?
                                                                          Любая система абстракций имеет набор состояний. Даже механическая. Ага?) Ну это же очевидно, или опять нет?
                                                                          Так вот если я начну хэшировать систему целиком — вы вообще даже не поймете, на каких абстракциях оно вообще строится в принципе. И такую систему вы вообще никогда не взломаете.
                                                                          А зачем это нужно?) А затем, что бы понимать быстро наборы состояний. И быстро обрабатывать все это дело. И да, без этого вы не поймете — сломалась система или нет. Взломали систему или нет. Система должна быть самодиагностируемой и отказоустойчивой. Хэширование тут здорово вывозит. Но вам такое совсем непонятно)))))) Вы же в абстракциях полнейший ноль. И для вас хэш механической системы — ну это же нереальной сложности абстрагирование ага?)))))) Ну как до такого додуматься то можно?????? ЭТО ЖЕ НУЖНО БЫТЬ КАК МИНИМУМ МЕГА-ГЕНИЕМ АГА????)))) ахаха! Слушайте, пока вы не начнете смотреть на все максимально абстрактно — вы так и будете хрень никому не нужную и не работающую городить.
                                                                          ПОНЯТНО НЕТ????
                                                                            0
                                                                            Пишите лог температуры патрона — этого достаточно. Если график более-менее похожий изо дня в день [НУ ВЫ ЖЕ ПАТРОН С ЛАМПОЙ НЕ ПЕРЕНОСИТЕ ИЗ ЭТОЙ ВАШЕЙ БАНИ НА УЛИЦУ В -40 И ОБРАТНО КАЖДЫЙ ДЕНЬ ЧЕРЕЗ ДЕНЬ ХАОТИЧНО], то получаемые данные и будут изо дня в день примерно усредненно в каком-то диапазоне. Причем все это вы можете здорово отслеживать. Контроллером. В патроне.

                                                                            Контроллером. В патроне. С логом. С автоподстройкой параметров, с кнопкой ресет. Который нужен для определения, вкручена ли лампа. Логика работы которого сломается при переносе в теплое/холодное помещение. Еще и 4 кнопки в патроне, чтобы определять, вкручена ли лампа. 4 новых компонента, 4 новых точки отказа, абсолютно новая конструкция патрона, и все ради определения лампы в патроне.
                                                                            Знаете, я все-таки забыл одного правило. «Не допускать оверинжиниринга».

                                                                            А теперь вы расскажите, как вы будете реализовывать наличие работающей лампы вольтметром))) Ну так. Чисто поржать)

                                                                            Я вам это сказал где-то в самом начале треда. Повторять не хочу. А если вы настолько увлечены чувством я-тут-настоящий-программист-и-покажу-этим-тупым-гуманитариям-где-раки-зимуют, что пропустили это сообщение, то желания разжевывать вам простейший способ желания нет тем более.

                                                                            ПОНЯТНО НЕТ???? ИЛИ ВЫ СОВСЕМ НИКЧОМНОЕ СУЩЕСТВО???
                                                                            УЖЕ ДЕЛАЙТЕ ДЛЯ ЛЮДЕЙ!!! А НЕ ДЛЯ СКОТОВ!!! ЭТО РЕАЛЬНО ТЯЖЕЛО ЧТО ЛИ ПОНЯТЬ????

                                                                            Я честно прочитал все ваши сообщения, и даже где-то там сквозит здравый смысл. Но вот на этой части сообщения я сдался. Продолжать беседу такого качества с сознанием такого качества я не имею ни малейшего желания.
                                                                            Несмотря на это, мне понравился пример с телефонами, и я бы был благодарен за ссылки на то, что можно почитать про такой подход.
                                                                              0
                                                                              Вообще этот подход прост как пробка — сначала отсекаем по параметру который гарантированно отсеет большую часть выборки с тем что вам точно не нужно. И так далее по значимости параметра лично для вас пока выбор не сократится до приемлемого количества вариантов.
                                                                                0
                                                                                Знаете, я все-таки забыл одного правило. «Не допускать оверинжиниринга».
                                                                                Это не правило — это бред, не имеющий математического доказательства.
                                                                                На самом деле оно как раз таки наоборот. Если вам нужно абстрактно упростить систему — вы ее должны усложнить. И на это есть строгое математическое доказательство. Иначе — никак.

                                                                                На пальцах: если у вас на входе четыре абстракции, а на выходе три — то вам придется усложнить систему, но незначительно.
                                                                                Но если на выходе одна абстракция — то система усложнится чрезвычайно сильно. И по-другому никогда не будет) По-другому оно просто невозможно.
                                                                                  0
                                                                                  Но вот на этой части сообщения я сдался.
                                                                                  Ну я же не сдался, когда вы написали тупое и никчомное «Ржать». И вы не сдавайтесь. Или слабак совсем?
                                                                                    +3
                                                                                    Кажется мы нашли того хакера с солонками. Теперь он теоретизирует о проектировании.
                                                                        0
                                                                        Господи, что происходит в диалоге выше?) Я всего лишь спросил — нужно ли блокировать подачу автоматического напряжения на нагрузку после пропадания питания))).
                                                                          0
                                                                          Да я сам не понимаю! Мы пробудили какое-то древнее зло.
                                                                            –1
                                                                            Да пребудет с вами тьма!!!

                                                                            А что вы еще хотите-то?) Это не мое пожелание. Вы к этому сами идете. А я тут вообще ни при чем. Я всего лишь зритель) Не более того… Вы все «сделаете» сами.

                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                        Самое читаемое