Вступление

На Хабре я скорей читатель, чем писатель, но вот когда в ленте попалась связка DIY + Lemana + Конкурс, я понял, что не смогу пройти мимо. Я уже давно практикую смену деятельности в свободное время, а наличие своего участка не оставляет больших сомнений в том, чем стоит заниматься «отойдя от компьютера» - стройкой.

Я расскажу, как я спроектировал, построил и, что особенно важно, «Достроил» гостевой дом, дачный дом, флигель – все варианты равноправны. Специально заостряю внимание, что я не профильный строитель и не привлекал никого со стороны, кроме разнорабочих для особо тяжелых работ. Все работы вел или по выходным, или по вечерам, когда был соответствующий настрой. Мне было интересно сделать это самому: от фундамента, до установки розеток.

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


Проектирование

Прежде чем вы окунетесь в кучу строительных деталей, скажу, какие цели я настиг:

  1. Отдельное капительное строение

  2. Все коммуникации

  3. «Умный» - но ровно настолько, насколько нужно, без надуманных сценариев

  4. Место для отдыха с семьёй, близкими и друзьями

Изначально мысль начиналась с того, что на месте доисторических построек (доставшихся с покупкой участка) я хотел построить беседку. Буквально 3х4 метра, возможно закрытую, возможно и нет…

Место будущего строительства (и точка начала благоустройства)
Место будущего строительства (и точка начала благоустройства)

Дом, который уже был на участке в процессе реконструкции (+ этаж вверх, + этаж вниз) я чуть ранее оцифровал: снял все размеры и перенес в Google SketchUp: это ранее сильно помогло уточнить некоторые площади, конструктивы и т.п.

Исходный проект жилого дома
Цифровой двойник капитальных стен и кровли
Цифровой двойник капитальных стен и кровли
Полный кровельный пирог - от стропил, до обрешётки, контр-обрешётки и металла.
Полный кровельный пирог - от стропил, до обрешётки, контр-обрешётки и металла.

Нужно отдать должное возможностям SketchUp - буквально несколькими интуитивно-понятными инструментами (втянуть/вытянуть/удалить) он дат возможность нарисовать всё что угодно.

Первая цель, которую я преследовал, начав его использовать - отрисовать в объеме геометрию кровельного пирога, чтобы при сборке не сесть в лужу. Удалось.

На этом фото ещё видны постройки, которые ещё на старом месте - летняя саманная кухня и гараж, построенный без фундамента.
На этом фото ещё видны постройки, которые ещё на старом месте - летняя саманная кухня и гараж, построенный без фундамента.

Потому было разумно дорисовать беседку рядом, проверить удобство, габариты. Незадача: участок имеет уклон, а это нельзя не учитывать при проектировании. Вместо теодолита/нивелира приходят на помощь лазерный строительный уровень, рулетка и колышки: за два вечера, в сумерках, когда лазер лучше видно, снимается карта высот двора участка и переносится в тот же SketchUp.

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

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

Финальный вариант проекта, который дошёл до реализации
Финальный вариант проекта, который дошёл до реализации
Планировка
Планировка
Планировка

Основной объем - гостиная комната, и две дополнительных: кладовая + сан/узел.

Таким образом, вырос не только проект и его смета, но и сроки строительства.

Год первый

В этот год на участке были снесены старый гараж и летняя саманная кухня, построенные в 50-70х годах прошлого века. Они были в аварийном состоянии и не отвечали моим планам. Они просто ждали, когда их разберут. После сноса строений и вывоза мусора как раз произошел момент цифровой съемки участка и начала примерочного проектирования. Был конец лета, и я в этом сезоне я мог только успеть подготовить фундамент.

Подготовка места
Вот эти постройки мешали
Вот эти постройки мешали
И были успешно снесены
И были успешно снесены

При помощи землекопа был подготовлен котлован, а после того, как я выставил опалубку, подсобниками был отлит ленточный фундамент 8,5 * 4 м.

Скрытый текст
Ширина около 300мм, глубина 1000-1500 (в зависимости от стороны). В качестве гидроизоляции - рубероид.
Ширина около 300мм, глубина 1000-1500 (в зависимости от стороны). В качестве гидроизоляции - рубероид.

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

Бригада студентов позволяет сделать то, на что не поднимаются руки
Бригада студентов позволяет сделать то, на что не поднимаются руки

Я сделал его не в один уровень, а террасно (уступами), потому что:

  • установленная опалубка по нижней стороне не выдержала бы столь высокого уровня заливки

  • было проще вывести уровень черновой кладкой, заодно устранив огрехи заливки по «непрофессиональной опалубке», соблюсти геометрию

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

Обратная засыпка
Укладка сливных труб
Укладка сливных труб
Вентиляция существующего погреба и обратная отсыпка
Вентиляция существующего погреба и обратная отсыпка

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

Ну и «дембельский аккорд» перед зимой – заливка армированной плиты поверх всего фундамента, досыпанного изнутри строительным боем и песком до необходимой высоты.

Заливка плиты
Окончательная укладка скрытых коммуникаций и обратная засыпка/проливка песка
Окончательная укладка скрытых коммуникаций и обратная засыпка/проливка песка
Армирование будущей плиты
Армирование будущей плиты
Без знакомых студентов/рабочих не стоит такое даже планировать
Без знакомых студентов/рабочих не стоит такое даже планировать

Год второй

Так как жилой дом на участке – кирпичный 1967 года постройки, то в качестве материала для летнего дома был нужен кирпич, красный полнотелый кирпич. Ну чтоб гармонировать рядом. А чтобы отвечать «современным» тенденциям это должен быть лофт-кирпич, ну типа штучной работы, весь такой уникальный, корявый и красивый. Ну а чтобы сэкономить и…отгрести проблем (не буду забегать) можно купить забутовочный полнотелый красиво-корявый кирпич при разительной разнице в цене относительно штучного (экономия в 2-3 раза, на минуточку).

Благодаря проекту с точными габаритами весьма точно считается кирпич (с ошибкой до 5%).

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

Зима не только дает возможность купить стройматериалы впрок, но и дает время проштудировать ForumHouse и профильные форумы, изучить приемы и типовые схемы кладки печей/барбеккю и т.п.

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

Проект печи
Кирпич к у=кирпичу - только после 5-6 итераций можно собрать то, что будет похоже на итоговый результат
Кирпич к у=кирпичу - только после 5-6 итераций можно собрать то, что будет похоже на итоговый результат
Печь должна встать точнехонько над спуском в погреб - из-за это приходится распрощаться с симметрией строения и начать ломать голову - а как спускаться вниз без риска застрять
Печь должна встать точнехонько над спуском в погреб - из-за это приходится распрощаться с симметрией строения и начать ломать голову - а как спускаться вниз без риска застрять

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

Так вот кирпич посчитан, на строительной базе в руке прощупан стендовый кирпич… и до весны на площадке базы смиренно дожидаются 10 тысяч кирпичей.

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

Вот в таком виде мне оставляют поле боя каменщики: в руки так и просятся мастерок и ведро раствора
Вот в таком виде мне оставляют поле боя каменщики: в руки так и просятся мастерок и ведро раствора

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

Немного про кирпич
Герой рассказа - Кирпич полнотелый Старощербиновский М125, забутовочный пластичного формования (500 шт/поддон)
Герой рассказа - Кирпич полнотелый Старощербиновский М125, забутовочный пластичного формования (500 шт/поддон)
Это торцы 5 кирпичей одной партии с одного поддона: все разные
Это торцы 5 кирпичей одной партии с одного поддона: все разные

30 марта я начал каждый вечер выкладывать как умел: предварительно натянув леску, кинув отвес, подготовив раствор. Я учился сам у себя, изобретал новые приемы, которые позже видел в youtube роликах, которых мне подсовывали рекомендации все больше и больше. Я клал кирпич «под глубокий шов», углубив кладочную смесь на толщину квадратного прика 14*14. Только швом 12..20 мм можно было скомпенсировать геометрию кирпича. И только нарочито грубой кладкой можно было подчеркнуть художественный замысел, который был заложен в проекте.

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

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

Кирпич, много кирпича
Надоконные перемычки из спаренного уголка 100*100, а также сваренная в контур арматура - импровизированное армирование верхних рядов.
Надоконные перемычки из спаренного уголка 100*100, а также сваренная в контур арматура - импровизированное армирование верхних рядов.
Надоконная кладка
Надоконная кладка
Любимые ракурсы
Любимые ракурсы

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

Вот тут видны кабеля, выходящие из колонн
Вот тут видны кабеля, выходящие из колонн

Лето, отпуск появляются силы на рывок, чтобы за месяц построить печь по достаточно типовой схеме (под казан + барбекю/мангал) но с нововведениями, которых нигде не встречал:

  • раздельные приточные воздуховоды с улицы для обеих очагов

  • свободное место под мангалом, которое было необходимо для доступа к оставшемуся подвалу в центре летнего дома

23Печь без оголовка трубы
23Печь без оголовка трубы
Кладка печи
Скрытые каналы приточки
Скрытые каналы приточки
Топочная мангала/барбекю
Топочная мангала/барбекю
Перекрытие радиусных проёмов
Перекрытие радиусных проёмов
Внутри целый пирог-термос, также на этом фото виден выход скрытого дымохода от казанной печи
Внутри целый пирог-термос, также на этом фото виден выход скрытого дымохода от казанной печи
Без такого станка было бы гораздо сложнее
Без такого станка было бы гораздо сложнее

У меня есть опыт в кровлестроении (в студенчестве много помогал отцу, репетировал на своем доме ранее) и потому дальше с крышей реализована уже стандартная схема:

  • проектирование кровли в SketchUp

  • подсчет и закупка необходимых материалов

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

  • на каком-то этапе с деревянной обрешетки достраивается труба необходимой высоты

  • на каком-то этапе с деревянной обрешетки достраивается труба необходимой высоты

  • колпак занимает место на дымовой трубе уже после Нового года

Крыша заканчивается уже одновременно с наступлением утренних заморозков
Крыша заканчивается уже одновременно с наступлением утренних заморозков
Кровля
Без кропотливой помощи отца крыша была бы проще
Без кропотливой помощи отца крыша была бы проще
Доборные элементы и карнизы - всё сами
Доборные элементы и карнизы - всё сами
Многослойный пирог под фальцевую кровлю
Многослойный пирог под фальцевую кровлю
Кривой и неповторимый
Кривой и неповторимый

Год третий

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

Немного про окна
ТЗ - ещё до вникания в конструктивы окностроения
ТЗ - ещё до вникания в конструктивы окностроения
Доступ воспрещён
Доступ воспрещён

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

Этот год был годом внутренней отделки и вспоминаем навыков:

  • «специалиста по стяжке пола»

  • сантехника

  • мастера по теплым полам

  • электрика

  • плиточника

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

Первые результаты работы электрика (меня) по наружному освещению
Первые результаты работы электрика (меня) по наружному освещению
Электрика
Черновая сборка всех подключений к контакторам/автоматам
Черновая сборка всех подключений к контакторам/автоматам
Щитовая расположилась в кладовой
Щитовая расположилась в кладовой
По инструкции к котлу вместо штатной перемычки можно привести сухой контакт для запуска котла "по требованию" - он внешнего термостата или контроллера.
По инструкции к котлу вместо штатной перемычки можно привести сухой контакт для запуска котла "по требованию" - он внешнего термостата или контроллера.
Про спуск в погреб

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

Тут приходит на помощь Компас 3D - как никак для полноценного твердотельного проектирования он подходит лучше.

Откидной, переломной люк, который будет застелен плиткой
Откидной, переломной люк, который будет застелен плиткой

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

Коряво и неповторимо (слоган стройки начиная с кирпича)
Коряво и неповторимо (слоган стройки начиная с кирпича)
Финальный результат с голосовым управлением
Финальный результат с голосовым управлением
Задача "вписать невписуемое" выполнена
Задача "вписать невписуемое" выполнена
Про отопление

Так как на участке (в основном доме) газ - двухконтурный отдельный котел и теплые полы - наш выбор.

Без эскиза на листе в клетку не обойтись
Без эскиза на листе в клетку не обойтись
Момент до заливки стяжки - последний для прокладки скрытых кабелей, которые были упущены ранее
Момент до заливки стяжки - последний для прокладки скрытых кабелей, которые были упущены ранее
Опрессовка магистральным водопроводом - 6 бар (при рабочем 1 бар)
Опрессовка магистральным водопроводом - 6 бар (при рабочем 1 бар)
Внутренний перфекционист еле принял работу у себя самого, но задача была выполнена - вписать водоузел в ширину будущего пенала 600мм.
Внутренний перфекционист еле принял работу у себя самого, но задача была выполнена - вписать водоузел в ширину будущего пенала 600мм.

Я бил собственные рекорды в количестве прослушанных аудиокниг, количестве шагов на трекере и микротравм. Мозоли, порезанные и прибитые пальцы, колени, поясница категорически были против таких выходных, которые я им устраивал.

Все этапы стройки всегда проходили через этап уточнения размеров, дорисовывания чего-либо в SketchUp: при поэтапном развитии объекта и планов, когда они идут один-в-один, без отставаний – очень удобно обращаться к проекту для визуализации, снятия размеров, компоновки уже мебели.

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

Скрытый текст
Утепление потолка путем набивки пароизоляции под стропилами (над - уже уложена мембрана). А полости заполняются минеральной ватой, подаваемой под давлением из специальной установки
Утепление потолка путем набивки пароизоляции под стропилами (над - уже уложена мембрана). А полости заполняются минеральной ватой, подаваемой под давлением из специальной установки
Штукатурка/маяки
Штукатурка/маяки
Косой запил поперек направления взгляда позволяет обойтись без явных соединительных планок и создать эффект единого пространства
Кухонный фартук из Белорусской плитки - шанс сделать стены ровнее
Компрессор + краскопульт эффективнее кистей и валика в 5.64 раза
Компрессор + краскопульт эффективнее кистей и валика в 5.64 раза
Косой запил поперек направления взгляда позволяет обойтись без явных соединительных планок и создать эффект единого пространства
Косой запил поперек направления взгляда позволяет обойтись без явных соединительных планок и создать эффект единого пространства
При некоторой сноровке даже 3х метровую вагонку можно подшивать на потолке в две руки. Можно, но не рекомендовано если словарный запас ограничен
При некоторой сноровке даже 3х метровую вагонку можно подшивать на потолке в две руки. Можно, но не рекомендовано если словарный запас ограничен

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

Финальный этап

В этом году, после завершения коммуникаций, я перешел к внутреннему обустройству.

Проект мебели/кухни, заказ материалов, сборка… и у тебя все становится/собирается так, как задумано. И это прекрасно.

Собирать мебель целиком и только из ЛДСП – не мой вариант и было решено отдельные элементы сделать из дерева (сборные фасады, столешница, карнизы) – неповторимая структура и естественный рисунок легко маскируют огрехи отделки, а на живость материала можно списать неточности в габаритах.

Лиственница + Бук + сосна + ЛДСП
Лиственница + Бук + сосна + ЛДСП
Про кухню
Всё начинается с общего проекта
Всё начинается с общего проекта

После проектирования составляется спецификация на детали. Особо продвинутые мебельщики даже могут подготовить задание в специальном формате не только на раскрой но и на сверловку присадочных отверстий.

Я же достал ворох самодельных направляющих и шаблонов-кондукторов: за два выходных короба собраны и установлены в свои места

Короба из ЛДСП
Короба из ЛДСП

Все остальное, и на самом виду - фасады, столешница было решено делать из древесины разных пород.

Клееный щит из лиственницы + масло в три слоя
Клееный щит из лиственницы + масло в три слоя
Фасады из фрезерованных сосновых реек с вставленными декоративными сетками из бука
Фасады из фрезерованных сосновых реек с вставленными декоративными сетками из бука
Сборка на клей и шканты
Сборка на клей и шканты
Шлифовка и покрытие маслом
Шлифовка и покрытие маслом

А наличие 3D принтера позволяет изобретать и печать любые шаблоны, кондукторы, сборочные направляющие.

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

Просто двери
Только в Лемана-Про нашел двери без покрытия и без вездесущих резных филенок
Только в Лемана-Про нашел двери без покрытия и без вездесущих резных филенок
Коробочный брус лучше надолго не оставлять на солнце: пытается скрутиться в пропеллер на глазах
Коробочный брус лучше надолго не оставлять на солнце: пытается скрутиться в пропеллер на глазах
Можно было бы сказать, что проем вверху оставлен для светового окна... но это будет наглой ложью - просто каменщик напортачил)
Можно было бы сказать, что проем вверху оставлен для светового окна... но это будет наглой ложью - просто каменщик напортачил)
Доборы/наличники из обычной струганной доски 100*20, покрытой все в то же масло.
Доборы/наличники из обычной струганной доски 100*20, покрытой все в то же масло.

С выбором мягкой мебели, «обстакановкой» кухни без жены я бы не справился и настоящий уют был создан именно её руками.

Настоящее время

Я почти закончил стройку летнего дома, теперь он имеет наиболее подходящее название – Флигель, именно так, с большой буквы. Оставшиеся мелочи, именно мелочи, как-то: обжечь печную плиту и казан, домонтировать полки в комнате хранения, доустановить датчик температуры/влажности в сан/узле - скорее уже из разряда «между делом».

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

Умный дом

По профессии я - инженер по автоматизации и знаю, как организовать работу на городских станциях водоснабжения/водоочистки и мегаватных котельных, очень люблю писать встраиваемое ПО для ПЛК и Scada систем, имею определенный опыт. И наверное, именно благодаря опыту я не впал в две диаметральные крайности: чрезмерной или напрочь отсутствующей автоматизации.

Как я поступил:

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

  • В качестве железных мозгов я применил одно из самых популярных решений в младшей автоматизации: программируемое реле Овен ПР205 (на борту с четом моделей расширений ввода/вывода может быть до 40 DI, 20 DO, 10 AI/AO  - это примерно, все зависит от конкретных спецификаций). Это реле уже давно переросло класс устройств «Программируемое реле», из которых оно пошло и может называться полноценным ПЛК, уже имеет встроенные клиент/серверы Modbus RTU/TCP, встроенные макро-библиотеки, гибкую конфигурацию и почти неограниченные возможности по логическим приемам. На таких регулярно собираются целые системы автоматики станций водоподготовки, производственные системы вентиляции, отопления и т.п.

С закрытой крышкой щитовой шкаф мало отличается от обычного
С закрытой крышкой щитовой шкаф мало отличается от обычного
Многостраничное меню, локальные настройки/уставки
Многостраничное меню, локальные настройки/уставки
Чуть более про Овен ПР205

Овен давно идет по пути максимального импортозамещения (ну насколько возможно - свои корпуса, платы, прошивки, производство, широчайшая номенклатура КИПа, измерительных систем и ПР, ПЛК) и с 2022 года де-факто уверенно выжимает в ряде отраслей западных вендоров.

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

ПР205 - пример устройства, выросшего из младшей ниши программируемых реле, которое уже наступает на пятки некоторым ПЛК других производителей.

Я запускал на таких ПР полноценные станции водоподготовки, водоочистки с несколькими группами ПИД-регулируемых насосов, десятками опрашиваемых по Modbus устройств и 1500+ регистровых тегов.

Встраиваемая пользовательская программа для ПР создается в проприетарном ПО - Owen Logic, которое регулярно обновляется, совершенствуется и имеет несколько сотен! тем и, наверное, миллионы, сообщений на профильном форуме.

Вот как может выглядеть основное рабочее окно, например для насосной станции (2 насоса с преобразователя частоты, датчик давления, резервуары)

Буквально: слева входы, справа - выходы, а на холсте логические блоки, свернутые в макросборки или непосредственно функциональные блоки, написанные на ST языке (родственник Pascal)
Буквально: слева входы, справа - выходы, а на холсте логические блоки, свернутые в макросборки или непосредственно функциональные блоки, написанные на ST языке (родственник Pascal)

А вот так, например можно реализовать водоочистную станцию после 10 скважин

Моя же программа для домашней автоматизации лаконичней и ещё в процессе своего взросления.

Принцип сохраняется: слева входы, справа выходы, посередине - магия
Принцип сохраняется: слева входы, справа выходы, посередине - магия

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

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

Или включение фильтра для бассейна как с уличной выключателя, так и по расписанию.

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

Вот участок, отвечающий за запуск полива по расписанию или по выключателю или по внешней команде по сети:

Чем понятнее назовешь переменные, тем проще "читать" холст программы"
Чем понятнее назовешь переменные, тем проще "читать" холст программы"
Функциональный блок проверки наступления времени запуска по расписанию
function_block SHEDULE_TIME
    
VAR_INPUT
    HH : UDINT;       (* Текущие часы (0-23) *)
    MM : UDINT;       (* Текущие минуты (0-59) *)
    
    HH_ON_1 : UDINT;  (* Часы первого включения (0-23) *)
    MM_ON_1 : UDINT;  (* Минуты первого включения (0-59) *)
    
    HH_OFF_1 : UDINT; (* Часы первого выключения (0-23) *)
    MM_OFF_1 : UDINT; (* Минуты первого выключения (0-59) *)
    
    ENABLE: BOOL;
END_VAR

VAR_OUTPUT
    OUT: BOOL;
    LEFT_M: UDINT := 0;
END_VAR

VAR
    NOW : UDINT;
    TIME_ON_1 : UDINT;
    TIME_OFF_1 : UDINT;
END_VAR
    
    (* Преобразование времени в минуты для удобства сравнения *)
    NOW := HH * 60 + MM;

    TIME_ON_1 := HH_ON_1 * 60 + MM_ON_1;
    TIME_OFF_1 := HH_OFF_1 * 60 + MM_OFF_1;

    IF (TIME_ON_1 <> TIME_OFF_1) THEN
        (* Основная логика управления выходом *)
        IF (TIME_ON_1 <= TIME_OFF_1) THEN
            (* Нормальный случай - время включения раньше времени выключения *)
            IF (NOW >= TIME_ON_1) AND (NOW < TIME_OFF_1) THEN
                out := TRUE;
                LEFT_M := TIME_OFF_1 - NOW;
            ELSE
                out := FALSE;
            END_IF;
        ELSE
            (* Случай, когда время выключения на следующий день *)
            IF (NOW >= TIME_ON_1) OR (NOW < TIME_OFF_1) THEN
                out := TRUE;
            
                IF (NOW >= TIME_ON_1) THEN
                    LEFT_M := TIME_OFF_1 + 24 * 60 - NOW;
                ELSE
                    LEFT_M := TIME_OFF_1 - NOW;
                END_IF;
           
             ELSE
                out := FALSE;
             END_IF;
        END_IF;
    END_IF;
    
    OUT := OUT AND ENABLE;
    
    IF NOT(OUT) THEN
        LEFT_M := 0;
    END_IF;
    
end_function_block
Функциональный блок управлением отопительным котлом
FUNCTION_BLOCK TERMOSTAT
//<Description>Управление котлом</Description>
//<GroupName>ТХ</GroupName>
//<Author>Кафтанатий</Author>
    
VAR_INPUT
    actual: real; // текущая температура
    target: real; // уставка температуры (отключения)
    delta : real; // уставка поддержания (при падении на которое относительно уставки включения, происходит включение)
    
    time_delay_s    : udint; // время выжидания перед командами включения/отключения - антидребезг
    time_reaction_s : udint; // время, не чаще которого можно ввключать/отключать - переключать контакт управления котлом
        
    enabled  : bool; // внешняя команда разрешения управления котлом
END_VAR
    
VAR_OUTPUT 
    out     : bool;  // команда включения котла
    state   : udint; // статус для HA
END_VAR
    
VAR     
    // Команды включения
    need_on: bool;
    need_off: bool;
    
    // команды выжидания отработки антидребезга
    wait_on: bool;
    wait_off: bool;
    
    // Время
    current_time    : UDINT;  // Текущее время (мс)
    start_action    : UDINT;  // Время начала действия (мс)
    last_switch_time: UDINT;  // Время последнего переключения (мс)
    
    // Внутренние состояния
    temp_out: bool; // Временное состояние выхода
END_VAR

// === Получаем текущее время ===
current_time := TIME_TO_UDINT(GET_TIME()); // мс

// === Логика управления температурой ===
IF enabled THEN
    // Определяем необходимость включения/выключения по температуре
    need_on := (actual <= (target - delta));
    need_off := (actual >= target);
    
    // Логика включения
    IF need_on AND NOT out THEN
        IF NOT wait_on THEN
            // Начинаем отсчет времени для включения
            start_action := current_time;
            wait_on := TRUE;
        ELSE
            // Проверяем выдержку времени для включения
            IF (current_time - start_action) >= (time_delay_s * 1000) THEN
                // Проверяем минимальный интервал между переключениями
                IF (current_time - last_switch_time) >= (time_reaction_s * 1000) THEN
                    temp_out := TRUE;
                    last_switch_time := current_time;
                    wait_on := FALSE;
                END_IF;
            END_IF;
        END_IF;
    
    // Логика выключения
    ELSIF need_off AND out THEN
        IF NOT wait_off THEN
            // Начинаем отсчет времени для выключения
            start_action := current_time;
            wait_off := TRUE;
        ELSE
            // Проверяем выдержку времени для выключения
            IF (current_time - start_action) >= (time_delay_s * 1000) THEN
                // Проверяем минимальный интервал между переключениями
                IF (current_time - last_switch_time) >= (time_reaction_s * 1000) THEN
                    temp_out := FALSE;
                    last_switch_time := current_time;
                    wait_off := FALSE;
                END_IF;
            END_IF;
        END_IF;
    ELSE
        // Сбрасываем таймеры, если условия изменились
        IF NOT need_on THEN
            wait_on := FALSE;
        END_IF;
        IF NOT need_off THEN
            wait_off := FALSE;
        END_IF;
    END_IF;
ELSE
    // При запрете управления - выключаем котел и сбрасываем состояния
    temp_out := FALSE;
    wait_on := FALSE;
    wait_off := FALSE;
END_IF;

// Устанавливаем выход
out := temp_out;
state.0 := out;

END_FUNCTION_BLOCK

Одно из приятных нововедений - возможность писать блоки на языке ST а не ручное связывание таймеров с логическими блоками. Это позволяет дробить сложные простыни программы на лаконичные участки, которые, более того, могут быть внимательно вычитаны и проверены сторонними ИИ-агентами, чат-ботами и прочими инструментами статического анализа и вайб-кодинга.

Также эти блоки почти без изменений могут быть перенесены не только между проектами, что логично, но и в старшие поколения контроллеров (ПЛК), которые чаще всего поддерживают ST язык "из коробки".

Для меня ПР205 решает следующие задачи:

  • включение простых потребителей от внешних выключателей (в обычном режиме, в импульсном, на заданное время), сборка разных схем освещения по разным переключаемым схемам освещения

  • управление внешними клапанами автополива (ночью, в удобное время, по заданным настройкам)

  • управление фильтром бассейна (также запускаю в интервальном настраиваемом режиме)

  • управление включением подогрева собачьей будки (по внешнему датчику температуры, по гистерезису)

  • управление включением подогрева собачьей будки (по внешнему датчику температуры, по гистерезису)

  • включение двухконтурного котла в режиме теплого пола замыканием внешних дискретных управляющих контактов по датчику температуры и уставкам внутри

  • управление электроприводом для тяжелого двухсоставного люка в подвал летнего дома.

Эти задачи решаются локально, без необходимости интернета и каких-то манипуляций. Встроенного 4” экрана с кнопками хватает для задание редко-меняющихся уставок и параметров.

Но… если учесть, что контроллер смотрит во внутреннюю сеть открытым портом для доступа по Modbus TCP и воспринимает/отдает любые регистры управления – возможности становятся гораздо интереснее.

Raspberry Pi 4 + бесплатная, устанавливаемая «одной кнопкой» за полчаса Home Assistant OS + пару вечеров, потраченные на понимание OS и ее возможностей дают:

  • единая связка домашней Алисы (Маруси, Сири) со всеми устройствами умного дома в обе стороны

  • доступ ко всем датчика летнего дома и улицы, которые опрашивает контроллер ПР205

  • доступ к серверу домашнего видеонаблюдения через HA OS

  • задание уставок отопления или простых сценариев голосом «Алиса выключи весь свет во дворе»

  • независимость от интернета при его отсутствии в базовой части алгоритмов

  • по команде «Открыть бункер» открывать доступ к ходу под печкой или реализовать «Сделай собаке потеплее» к тихой радости хвостатого

Минималистично и лаконично
Минималистично и лаконично

Для добавления почти всех устройств Флигеля в Home Assistant достаточно описать специальный конфигурационный файл, указав способ доступа (Modbus TCP) и адресацию.

Пример моей конфигурации

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

# Summer House tcp connection
modbus:
  - name: pr205
    type: tcp
    host: 192.168.1.10
    port: 502
    delay: 0
    message_wait_milliseconds: 30
    timeout: 5
    sensors:
      - name: Температура во дворе
        unique_id: ld_temp_out
        unit_of_measurement: °C
        slave: 1
        address: 0x402C
        swap: word
        input_type: input
        data_type: float32
        scale: 1.00
        offset: 0
        precision: 1
      - name: Температура в летнем доме
        unique_id: ld_temp_in
        unit_of_measurement: °C
        slave: 1
        address: 0x4032
        swap: word
        input_type: input
        data_type: float32
        scale: 1.00
        offset: 0
        precision: 1
      - name: Температура воды в системе
        unique_id: ld_temp_collector
        unit_of_measurement: °C
        slave: 1
        address: 16474
        swap: word
        input_type: input
        data_type: float32
        scale: 1.00
        offset: 0
        precision: 1
      - name: Влажность в санузле
        unique_id: ld_humidity_san
        unit_of_measurement: "%"
        slave: 1
        address: 16478
        swap: word
        input_type: input
        data_type: float32
        scale: 1.00
        offset: 0
        precision: 1
      - name: Температура в санузле
        unique_id: ld_temp_san
        unit_of_measurement: °C
        slave: 1
        address: 16476
        swap: word
        input_type: input
        data_type: float32
        scale: 1.00
        offset: 0
        precision: 1
    climates:
      - name: Температура летнего дома
        unique_id: ld_temp_target
        address: 16468
        swap: word
        data_type: float32
        input_type: holding
        max_temp: 35
        min_temp: 5
        precision: 1
        scale: 1.00
        temp_step: 1
        temperature_unit: C
        target_temp_write_registers: false
        target_temp_register: 16468
    binary_sensors:
      - name: Запуск котла
        unique_id: heat_turning_on
        address: 16464
        device_class: running
        input_type: holding
        scan_interval: 15
        slave: 1
    covers:
      - name: Бункер
        unique_id: LUK
        slave: 1
        address: 16466
        input_type: holding
        status_register_type: holding
        device_class: door
        scan_interval: 10
        status_register: 16467
        state_opening: 1
        state_open: 2
        state_closing: 3
        state_closed: 4
    lights:
      - name: Свет в курилке 1
        unique_id: L_KUR1
        command_on: 1
        command_off: 0
        address: 16436
        verify:
            input_type: holding
            address: 16437
            state_on: 1
            state_off: 0
      - name: Свет в курилке 2
        unique_id: L_KUR2
        command_on: 1
        command_off: 0
        address: 16438
        verify:
            input_type: holding
            address: 16439
            state_on: 1
            state_off: 0
      - name: Свет во дворе
        unique_id: L_DVOR1
        command_on: 1
        command_off: 0
        address: 16440
        verify:
            input_type: holding
            address: 16441
            state_on: 1
            state_off: 0
      - name: Свет на заборе
        unique_id: L_DVOR2
        command_on: 1
        command_off: 0
        address: 16442
        verify:
            input_type: holding
            address: 16443
            state_on: 1
            state_off: 0
      - name: Свет общий
        unique_id: L_IN_COM
        command_on: 1
        command_off: 0
        address: 16444
        verify:
            input_type: holding
            address: 16445
            state_on: 1
            state_off: 0
      - name: Свет на колоннах
        unique_id: L_IN_COL
        command_on: 1
        command_off: 0
        address: 16446
        verify:
            input_type: holding
            address: 16447
            state_on: 1
            state_off: 0
      - name: Свет на кухне
        unique_id: L_IN_KUH
        command_on: 1
        command_off: 0
        address: 16450
        verify:
            input_type: holding
            address: 16451
            state_on: 1
            state_off: 0
      - name: Подсветка периметра
        unique_id: L_LENTA
        command_on: 1
        command_off: 0
        address: 16485
        verify:
            input_type: holding
            address: 16486
            state_on: 1
            state_off: 0
      - name: Свет над столом
        unique_id: L_IN_TAB
        command_on: 1
        command_off: 0
        address: 16452
        verify:
            input_type: holding
            address: 16453
            state_on: 1
            state_off: 0
      - name: Свет в сан. узле
        unique_id: L_CY
        command_on: 1
        command_off: 0
        address: 16454
        verify:
            input_type: holding
            address: 16455
            state_on: 1
            state_off: 0
      - name: Свет в чулане
        unique_id: L_KLAD
        command_on: 1
        command_off: 0
        address: 16456
        verify:
            input_type: holding
            address: 16457
            state_on: 1
            state_off: 0
      - name: Гирлянда
        unique_id: L_GIRL
        command_on: 1
        command_off: 0
        address: 16481
        verify:
            input_type: holding
            address: 16482
            state_on: 1
            state_off: 0
      - name: Вентиляция в с/у
        unique_id: F_CY
        command_on: 1
        command_off: 0
        address: 16458
        verify:
            input_type: holding
            address: 16459
            state_on: 1
            state_off: 0
      - name: Фильтр бассейна/подогрев будки
        unique_id: R_DOG_BAS
        command_on: 1
        command_off: 0
        address: 16460
        verify:
            input_type: holding
            address: 16461
            state_on: 1
            state_off: 0
      - name: Полив правой стороны
        unique_id: R_POLIV
        command_on: 1
        command_off: 0
        address: 16462
        verify:
            input_type: holding
            address: 16463
            state_on: 1
            state_off: 0
      - name: Полив левой стороны
        unique_id: R_POLIV_2
        command_on: 1
        command_off: 0
        address: 16483
        verify:
            input_type: holding
            address: 16484
            state_on: 1
            state_off: 0
            
            
            
            

А если добавить в HomeAssistant интеграцию с голосовым помощником (тестировал на Алисе), то Алиса подтягивает все устройства из HA и уже дает к ним доступ в любом месте, где есть интернет.

Попутно Алиса добавляет голосовыми командами и своими сценариями, то, что не обязательно настраивать аппаратно в контроллере или в HA OS - например попросить включить ее вентиляцию в сан/узле на 10 мин.
Попутно Алиса добавляет голосовыми командами и своими сценариями, то, что не обязательно настраивать аппаратно в контроллере или в HA OS - например попросить включить ее вентиляцию в сан/узле на 10 мин.

Я получил автоматизации ровно такой, какой она была необходима: все что нужно и чуть больше этого.

А за три года стройки я получил место для сбора вместе всей большой семьей, место, каждый сантиметр которого был вначале отрисован в проекте, а затем реализован в кирпиче, плитке или дереве. И не по необходимости, а в удовольствие, в качестве отвлечения от основной работы, как DIY хобби.

 P.S. Повторять возможно только после составления сметно-временного отчета: иначе вместо летней беседки можно получить отапливаемый Флигель, и расплатиться за это тремя летними отпусками.

P.P.S. Противопоказания: излишний перфекционизм. Либо он пройдёт, либо не даст закончить стройку.

P.P.P.S. Около 90% отделочных материалов было приобретено в соседнем (25 км) Лемана Про, без их существования я не знаю, где бы я придирчиво перебирал пачки вагонки, мебельные щиты и сдавал/менял плитку. Собственно, благодаря подписке на их хаб и получилась эта статья. Эдакая бесхитростная благодарность любимому строй-маркету.