Сегодня накидал первый слой финишной шпаклевки на три смежные стены, а так же на две грани нишы под шторы. В целом - ничего особенного. Процесс уже повторялся не один раз.
Единственное, думаю завтра нужно внутри нишу зашпаклевать. Там это будет делать очень неудобно, и скорее всего я забрызнаю стены. Так что лучше я их забрызгаю пока они еще финишно не покрыты шпаклевкой.
А так же, сегодня на обеде дописал еще некоторой логики для контроллера автономного водопровода.
Теперь он переключается полностью на городской водопровод, если давление в нем выше 3.1 бара. И переключается обратно, если ниже. Сделано это для некоторой экономии электроэнергии. Все же насосная станция потребляет электричество, причем мощность у нее не малая.
Так же запилил так называемый аварийный режим. Он будет включаться тогда, когда давление в городском водопроводе упадет ниже 1 бара. В этом аварийном режиме контроллер будет стараться наполнить бочку почти полностью (сейчас она держится набранной наполовину, чтобы было куда подливать воду которая откачивается из скважины).
В будущем хочу реализовать анализ трендов, и на их основе решать, есть ли предпосылки к аварии на водопроводе или нет. Но это наверное будет уже следующим этапом.
В последнее время очень часто задумываюсь о связности контроллеров. Сейчас, в качестве шины общения контроллеров между собой используется mqtt. Очень удобная штука, с одной стороны. С другой, если вдруг mqtt сервер сляжет, то контроллеры останутся без связи между собой.
Первая мысль которая пришла мне в голову: нужен high availability mqtt сервер. И поднимать минимум 3 инстанса на физически разных серверах. Еще и желательно разместить их в разных частях дома. Чтобы не было такого, что потоп в подвале внезапно потушил все 3 сервера и плакала высокая доступность. Помимо того, что это требует некоторых финансовых вливаний в инфраструктуру и потом еще некотрый расход электричества на работу этих серверов, я чет так и не смог найти какую-то бесплатную реализацию mqtt сервера в версии HA. Была мысль написать свою реализацию, и может даже выложить ее в опенсорус, но потом в голову пришла идея получше.
Нужно просто связываться контроллеры между собой напрямую. Т.е. чтобы они общались друг с другом не используя какие-то центральные точки отказа. Как вариант, можно сделать реализацию gossip протокола. Наверное это будет лучшим вариантом.
Внимательный читатель скажет: но у тебя ж они все сидят на ethernet и wifi, которые тоже точка отказа. Стоит умереть свитчу или роутеру, и все, сеть рассыпалась. Контроллеры связаться друг с другом уже не смогут. И будет совершенно прав. Но, это уже вторая мысль, можно реализовать некоторый mesh на wifi. У меня ж все построено на esp32, и каждая имеет на борту wifi модуль. Так что, при потере сети, контроллеры могут переходить на wifi и искать другие контроллеры, подключаться к ним и осуществлять обмен.
Первым делом я б наверное сделал реализацию gossip и перевел все контроллеры на общение так же через него (mqtt пока можно оставить, потому что во первых Home Assistant не умеет в gossip, во вторых - резервирование на всякий случай), а потом уже можно заняться резервной mesh сетью на wifi.