Мозг для умного дома

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

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

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

И тут на глаза попалась хреновина под названием Raspberry PI 3B, которая на максималке жрет 0.6А, а значит на одном аккумуляторе пальчиковом до 6 часов проживет в автономке, у которой ничего не крутится, ограничиваясь парой радиаторов, места эта штуковина не занимает от слова совсем, имея кроме 1.2Мгц процессор, 1Гб памяти и 16Гб флэша, еще и 40 GPIO, на которые можно повесить половину датчиков и механизмов умного дома, при этом стоит даже в комлексе на Али эта штуковина 2800 рублей или 38 евро.

Скажу честно, первый, второй, и даже наверное десятый компьютер мой личный был куда скромнее по характеристикам, чем эта фигня, размером с визитку, при этом штатная Raspbian OS, которая является кастрированной версией Debian, который в свою очередь является Linux-ом для чайников, который так же является Unix системой для ламеров по сути, выкидывается из этой штуки сразу и меняется на Aarch64 FreeBSD на который в рамках 16Гб ставится всё что угодно, даже через порты, хотя отдавать почти 5Гб на порты жалко будет при всем их удобстве.

Есть слушок, что FreeBSD не очень дружит с WiFi на Rasberry, но во-первых это слух, во-вторых это решаемо, в-третьих, нет проблем после программирования на двухсторонний скотч эту приблуду присобачить к моему нынче уже стимпанковскому MicroTik у которого все его 10 RJ45 девственны, и который дальше может не только всё приблуды типа Arduino или построенных на нем Sonoff связывать, но при необходимости и дьявола вызвать если правильно настроить.

Изучая теорию меня несколько убило, что под Pyton и Perl есть библиотеки для работы с GPIO, а под PHP типа нет, и хуйня, что GPIO под Unix системами не более чем устройство ввода вывода… Не меньше убили ребята, судя по роликам на ютюбе, рожденные с паяльником, которые жаловались, что не нашли сборки FreeBSD с тем же IPFW, даже не знаю чему больше возмущаться, тем, что фильтрацию проще на роутере реализовать или тем, что во фряхе это дело с пакета или порта ставится элементарно если уж так хочется на уровне контроллера отсекать трафик…

Вполне очевидно, что на Rasberry встанет минимальная фряха, Nginx, MariaDB (после выкупа Oracle MySQL я принципиально с него ушел), PHP-FPM, для общения с людьми, и конечно Perl для задач по крону, Memcached едва ли будет востребован, учитывая кол-во пользователей системы будет ограничено числом людей в доме, хотя быть может пригодится, как мост для сверхбыстрой передачи GPIO статусов от перловки до пыха, но думаю что для этого сгодится и текстовый файл, который будет неплохо работать при всем тормознутости SD карты.

Пока у меня есть легкая неясность по таможне, говорят в Болгарии до 12 евро посылки проходят без таможни, от 12 до 250 требуют НДС заплатить, так что пока не придет первая посылочка, заказывать модуль не буду, возможно дешевле и быстрее будет кого-то из друзей в России попросить получать и пересылать, но сайт управлялку в свободное время делать начну, мыль там банальная, нарисовать дом так чтобы по клику на комнату (включая сортир) был выбор что сделать надо устройству в комнате, как пример, если хочешь заполоскаться в ванной, нажать на ванную, и заставить бойлер нагреться до максимума или же как другой вариант, когда влом вставать, пустить протокол «ночь» чтобы всюду вырубился свет.