Чем больше устройств появляется в умном доме, тем больше растет сложность, в геометрической прогрессии, каждый датчик может использоваться в сотнях сценариях разных, каждое устройство может быть использовано в сотнях автоматизации, также алгоритмы работы устройств можно тоже постоянно совершенствовать и усложнять, что только повышает сложность, и, конечно, необходимо будет помнить, как настроено, где настроено и как оно вообще работает, и как оно должно работать лучше.
В случае каких-то сбоев постоянно приходится искать источник этой ошибки, может быть источником это ошибки данных, когда какие-то данные либо старые пришли в систему умного дома, или например, система умного дома была перезагружена, и она подгружает тоже какие-то устаревшие данные, либо отключался Wi-Fi, например, и тогда некоторые устройства тоже отправляют старые данные, их тоже нужно как-то обрабатывать, и чтобы сценарии не срабатывали неправильно, но и в самих сценариях могут быть ошибки постоянно появляться, потому что изменяться может, и другие сценарии, не используются какие-то параметры или датчики разные могут быть перемещены или находиться в других режимах с другими ограничениями, и когда единственное, я перенастраиваю, я могу какой-то параметр базовый поменять, а потом оказывается, что этот параметр был важен, и в другом сценарий перестало работать так, как ожидалось, но и часто еще сами датчики начинают отправлять какие-нибудь неправильные параметры, это может быть разными причинами вызвано, то есть это может просто был сбой датчика.
У меня, например, так одно время, точнее даже один раз сбоил датчик Xiaomi, когда он начал отправлять не значение совсем, из неправильных диапазонов, и одни и те же, и, конечно, система умного дома у меня никак не могла понять, что это неверные данные, единственное, что я потом сделал еще дополнительные ограничения по диапазону, это был датчик температуры и влажности, соответственно, влажность была 55 процентов, но это нормально, в принципе, это реалистичная влажность, действительно может возникнуть в какое-то время в комнате, но температура 55 градусов, которая тоже отправлялась, конечно, такого быть не может, и, конечно, такое мне пришлось проверять и исключать, и я настроил так, чтобы, если значение выпадает из этого диапазона, то, во-первых, мне делатся информирование с помощью Telegram о том, что какой-то датчик начинает работать неверно, и шлет неправильные значения, и в целом такое значение, конечно, не записываю и не использую ни в сценарий, ни в каких-то автоматизациях.
Также у меня есть много датчиков, которые довольно старые, работают на старых протоколах обмена, связи, это на частоте 433 мегагерца, все эти самодельные датчики, они по разным причинам тоже могут передавать не очень качественный сигнал, например, батарейка садится, или просто были помехи, то тоже приходится отслеживать, чтобы значения, которые приходят они были из верных диапазонов, конечно, там используется некоторый вариант контроля чётности и передаваемых параметров, на самом деле я даже проще поступил, кроме этого, я еще использую алгоритм, что если два последовательных сигнала пришли одинаковые, то тогда в этом случае я их, сохраняя, обрабатываю, если сигналы разные, то, конечно, значит, это один из них был ошибочный, и такой сигнал я уже не использую в системе умного дома, и если, например, у меня используется либо датчик, который считает расход воды горячей, холодной, то, конечно, когда он мне пришлет неверное значение, я могу такое значение и подать, и придется очень много заплатить за такие неправильные данные, и, конечно, во-первых, когда я ввожу эти параметры, подаю, то, конечно там показывает, сколько расход за месяц, например, и внимательно смотрю чтобы не было там каких-то 50 кубометров, и в целом, конечно, за счет того, что я отслеживаю входные данные от этих датчиков, то, конечно, я в систему умного дома разные неверные значение не сохраняю, ну, иногда бывают такие что они проходят, какой-то незначительный всплеск, небольшое отклонение, но не его невозможно выявить, и такое значение, конечно, может сохраниться, поэтому все сбойные ситуации я пытаюсь сделать себе оповещение в Telegram, сохранять их для того чтобы их смочь проанализировать.
Но иногда бывает так много сбоев, конечно что просто начинает заваливать спамом и не всегда бывает возможность быстро добежать до системы умного дома и выключить, даже мне однажды пришлось просто выключить весь сервер, потому что он просто бесконечно начинал посылать там несколько сообщений в секунду и я боялся что меня могут заблокировать, Telegram бот, и в общем пришлось просто его выключить для того чтобы вообще не сошла с ума вся система умного дома.
Очень много случаев возникает когда идет параллельное выполнение и отправка команд, и я конечно использую MQTT брокер для взаимодействия между разными приложениями и разными экосистемами, но например когда одновременно открывается дверь и срабатывает датчик движения, и датчик открытия, то конечно довольно сложно определить, что все-таки произошло вперед, бывает так что разница там в наносекундах каких-нибудь и конечно не всегда понятно, то есть у меня в принципе система выполняет эти команды параллельно, потому что если взять последовательное выполнение, то бывает так что очень большая задержка, пока одна команда, первое значение, обработается потом уже пройдет анализ, второй обработается это очень долго и иногда неприемлемо, поэтому приходится делать параллельное выполнение и бывает так что может сработать как будто бы два действия, одно например открытие и тут же может прийти и значение, в принципе о закрытии или движения или прекращение движения или еще может быть так что параллельно включили свет, а эти данные еще в базу не обновились, я соответственно не знаю предыдущего значения, и конечно таких сложностей очень много и приходится учитывать время срабатывания, отслеживать чтобы были какие-то лаги по времени, чтобы можно было отследить например что если я открыл дверь и включил свет, то течение какого-то времени, двух секунд или 5 секунд, ни на какие действия не реагировать, потому что это может быть просто повторное срабатывание, и это очень сложно следить, это сильно усложняет сами сценарии, то есть в каких-то простых системах или приложениях такие сценарий в принципе уже невозможно заработать, такие особенности по времени срабатывания, по времени прихода этих значений, уже обработать не получится, и конечно когда используется какая-то одна экосистема или одна система умного дома, то еще можно в принципе разобраться как она работает, но у меня например используется Home Assistant и OpenHAB, и Яндекс Умный дом, и еще я использую NodeRed в качестве системы написания каких-то сценариев, еще и скрипты используется, поэтому иногда бывает так что в какие-то системы какая-то часть скрипта или автоматизации сначала в одной системе обрабатывается потом она передается в другую систему например через MQTT или другим образом, и потом в той системе обрабатывается и в третью систему.
Например бывает когда все разные системы и разные устройства например, выключатель одной фирмы, какой-нибудь беспроводной, а исполнительное устройство или проводной выключатель или светильник другой экосистемы, и соответственно надо будет из одной системы передать в другую, это очень длительная цепочка и где-нибудь может все равно может сработать неверно и нужно будет вспомнить в какой экосистеме, в каком скрипте, в каком сценарии, в каком файле это произошло и на самом деле даже не поможет здесь какое-то ведение документации, потому что все-таки это любительская система и там конечно вести детальную документацию, которая устаревает очень быстро и просто уже практически нереально делать, то есть проще всегда найти где там если что-то не работает, взять и заново переписать, переделать, перенастроить, чем пытаться полноценно документировать и точно понимать как настроено, проще разбивать большие сложные сценарии на много маленьких и простых, но опять же если сценариев много и устройство используется в нескольких сценариях, то например в случае замены устройства или датчика придется сценарии заново переделывать, перенастраивать, перепроверять что они действительно так работают, потому что новые датчики могут и другие значения слать, например бывает так что они отправляют значения из других диапазонов например температура может приходить как в виде значения с десятичными, может приходить как сотыми, а может приходить как умноженное на 10 и тогда это нужно тоже будет тоже обрабатывать корректно.