Всем привет! Под прошлым постом о моем проекте было много комментариев вида "круто, но зачем?". Мне захотелось обстоятельно ответить на этот вопрос и сделать проект, на котором это было бы уместно. Однако, история была бы сильно неполной без контекста, также некоторые сюжетные повороты могли остаться непонятными. Поэтому начать придется сильно издалека...
Дисклеймер. Использованные технические решения спорные, некоторые обусловлены исключительно синдромом утенка. В посте много тупых выборов, оверинжиниринга и ПК-гейминга.
Лето
Летом прошлого года мы сняли частный дом. Одной из причин было желание весь его обмазать еспехами и датчиками и получить какой-то профит. Остатки естественнонаучного образования вкупе с опытом анализа данных привели мой больной разум к идее сосредоточиться в первую очередь на системе отопления. В простом варианте начать считать количество литров сожженного газа из газгольдера.
Более сложная гипотеза заключалась в том, что я смогу относительно небольшими усилиями утеплить дом и увидеть на графиках ступеньку. Ну и вообще видеть мгновенное потребление газа это прикольно (так мне казалось).
Но перед этим мне захотелось поиграть. Проведя много времени в скитаниях, я соскучился по своему стим контроллеру. А ещё очень хотелось поиграть в Атомик и Балду на большом экране. На очень большом.
Конечно же, это не просто блажь: побочным эффектом был бы запуск моего игрового компьютера в качестве сервера для Home Assistant.
На тот момент будущее казалось безоблачным. Все что нужно было сделать, это докупить видеокарту в мой старый системник и сделать небольшой ремонт под стену для проектора. И черная стена ещё нужна, я же люблю портреты делать. А чтобы черная стена была ещё функциональней, она будет меловой. Забегая вперед скажу, что стена получилась очень крутая, дико рекомендую, например.
Ремонт гостиной
Договорившись часть аренды тратить на ремонт, мы решили слегка обновить гостиную. Изначально, она выглядела так:
Ну и конечно фатальные недостатки:
- нет черной стены
- нет белой стены
В итоге получилось вот так:
Ремонт закончился аккурат к первому сентября.
Осень
Игровой компьютер
Кочевой образ жизни накладывает свои отпечатки: последний раз я использовал свой ПК в качестве игрового полтора года назад, и я не был уверен, что подобная история не повторится. Два раза с интервалом в несколько мне удавалось найти вменяемую конфигурацию за условные 20 тыщ рублей, которые работали ещё достаточно много лет. В этот раз мне нужна была только видеокарта, какой-то старый i7 и 16gb ddr3 у меня оставались.
Проведя обзор б/у рынка видеокарт была выбрана NVidia GTX 1060. И в общем-то можно было начинать играть.
Атомик Харт был установлен и я погрузился в игру. Но играя, я не чуствовал удовлетворения: разрешение у телевизора было 1024х768 и пиксели размером с палец навевали грустные мысли о детстве.
Немного о степени моего задроства
Прошлая конфигурация компа включала в себя линуксовый гипервизор (на центоси) с виртуализированной виндой, в которую пробрасывались видео- и звуковая карта. Если вы не поняли что здесь написано, значит вы нормальный человек.
Зачем? Ну с некоторой стороны это удобно: админить CentOS и KVM я умею, виртуалка с Хоум Асситантом живет рядом, все довольны, я смогу рулить всем через ssh и не париться. Ага, не париться.
Проектор
Не знаю как у других, но меня некоторые вещи вполне могут сделать счастливым. Для счастья требовалось только 4К и маленькая задержка в отображении картинки.
Один раз я уже ошибся с выбором проектора для своей тогдашней девушки. Я выбрал Xgimi H2 и несмотря на красивую картинку, его задержка в 30-40мс была слишком ощутимой для игр. Проектор она отказалась менять, а я вскоре от неё съехал...
После мучительных раздумий был выбран Acer H6800BDa, надо было спешить, он оставался лишь в одном ситилинке, а ещё шнур надо взять...
И...! Свежекупленный проектор не заработал. Потратить ~100к рублей и получить сбрасывающуюся каждые пять секунд картинку, это так себе ощущения.
Количество купленных кабелей: 1
Количество работающих проекторов: 0
Я присмотрелся к кабелю и понял, что у кабелей hdmi есть версии. Я покупаю ещё один кабель. Снова 15 метров, нужная версия... И снова провал. Я загрустил. Причин для грусти было несколько
- Каждый элемент моего пазла является настолько сложным, что мне может просто не повезти с какой-то индивидуальной непереносимостью конкретных элементов
- Заявленные конфигурации вроде проброса железа в виртуальные машины до сих пор находятся в зачаточном уровне и работают криво
- У меня уже два ненужных кабеля
Устав красноглазить, я обратил внимание на штатный к проектору кабель. И с ним все работало! (ну как все, звуковая карта периодически начинала шипеть, но в винде она не шипела, поэтому я уже решил выпилить винду).
Я купил третий кабель
Да, теперь даже кабель умнее чем ты, %юзернейм%.
В целом, на этом можно было бы и закончить эту эпопею. Я поставил винду, запустил Home Assistant в Hyper-V, начал раздавать торренты и гамать в Атомик.
Проблемы с сетапом
У меня начал появляться BSOD с ошибками памяти. Отлично! Ведь это повод снова проапгрейдить компьютер. Запускать memtest86 мне показалось слишком скучно, я сразу начал искать новую платформу.
Хотелки были такие: как обычно чтобы дешево, 32гб памяти, ядер побольше на виртуалки; да и вообще, наверняка есть куча серверных процов, которые списывают крупные игроки... Надо было понять, какого ингредиента не хватает.
Следуя общей логике принятия решений была взятая самая дешевая китайская плата в комплекте с Xeon e5 2673 v3. Почему v3? Потому у этой ревизии можно хакнуть турбобуст и получить вместо стандартных 2400MHz довольно солидные 3100MHz на 12 физических ядра (24 виртуальных). Да, я не просто собираюсь использовать китайское говно, я буду его ещё и разгонять. И все это развлечение всего за 8к рублей!
Естественно, оно сразу не заработало, пришлось пошаманить с памятью, пару раз впасть в уныние от мысли, что в случае проблем с железом, винить можно будет только себя.
Но через какое-то время очень странно начал себя вести hdd, щелчки и перезапуски намекали на его скорую гибель, я решил его отключить...
Где про умный дом-то, епта?
Да щас-щас. Короче, идея была такая: начинаю собирать данные с датчиков заранее, а потом на длинном интервале считаю условный коэффициент утепенности дома. Модель должна была учитывать температуру на улице, количество тепла закаченного в дом, возможно погоду из интернета и количество солнечного тепла полученного за день. Поэтому в первую очередь я хотел начать копить данные, пусть может и с неправильными размерностями, но потом все аккуратно пересчитать.
Бойлер-рум
Первым пациентом стал газовый котел:
Ставить китайское говно в систему отопления дома? Сомневался ли я в том, что хорошая идея? Нет, я это знал! На фото ниже стоят датчики температуры и расходомер на систему отопления.
Если вам показалось, что это пиздец, вам не показалось. Так делать инженерные системы в частном доме нельзя. Но хозяевам норм.
Так как мне хотелось смотреть вообще на все, то я получил такую картинку
Но суть такова: с помощью несложных физических формул зная разницу температур + количество воды прошедшей между входом и выходом, можно получить количество тепла, которое попало в дом.
На графике выше видно, как работает котел. Включается, нагревает воду до установленной температуры и выключается. Каждый раз стремится работать с постоянной мощностью, но сам он имеет минимальную мощность, с которой может начать работать. Короче, мне просто в графики нравится залипать.
Можно было бы даже поставить расходомер на горячую воду и, устроив цифровой концлагерь в отдельно взятом домохозяйстве, выставлять счет помывшимся людям! (в свое время меня восхитили технологии, описанные в Незнайке на Луне)
Основная проблема, с которой я столкнулся, это размерности. Все величины вроде измерялись правильно, бессознательный опыт подгонки физпраков постоянно бубнил "да все сходится, потом пересчитаешь если что".
Дверь
Вторым подопытном кроликом была дверь. Практического смысла в этом не было никакого, мне просто захотелось поставить эксперимент.
На одну дверь было потрачено 7 датчиков температуры: 1 снаружи, 2 на внешней двери с внутренней стороны, 2 на внутреннюю дверь с внешней стороны (в тамбуре) и 2 датчика на внутренней двери внутри комнаты.
Внешняя дверь имела отверстия в косяке, которые я замазал и получил ступеньку (на графике в смысле)! К сожалению, поля этого поста слишком небольшие чтобы я приложил все фотографии... На самом деле хронологически дверь была первой. Но утепление двери совпало с моментом, когда я мигрировал на винду, пришлось делать бекап на отваливающийся hdd в надежде потом его восстановить. А все потому что в 2024 году ext4 не умеет уменьшаться и у вас из выбора только все отформатировать. Очень удобно.
Упрощенная версия дашбордика
комплюктер наносит ответный удар
Все в целом было нормально, только винда почему-то периодически намертво висла, Атомик харт крешился на уровне где было много бегающих от тебя шаров. Параллельно начал отваливаться второй ssd. Когда проблему стало невозможно игнорировать, я понял, что пришло время нового блока питания. Ну потому что старый блок питания я хотел вернуть на старую платформу и получить ещё один домашний сервак на сдачу.
И естественно на старой платформе со старым блоком питания никаких проблем с памятью не было (я таки прогнал мемтест).
А, ну и я естественно разогнал и проц, и видеокарту. Видеокарту пришлось разогнать потому что Балда на высоких не шла.
Зима
Данные собирались, я играл в балду, жесткий диск тоже заработал, но бекап не восстановился. Тащемта, сложно было ожидать другого (по возможности избегайте делать бекапы на неисправное оборудование). Газ дорожал, дом был крайне холодным.
Чтобы совсем не замерзнуть была проапгрейжена печь:
Где-то после печи я решил проверить, как мои данные там собирались. Я заранее выдал большой диск виртуалке, решив что это как-то поможет долгому хранению автоматически. Но зайдя в очередной раз в интерфейс, я осознал, что данные хранятся дефолтные 10 дней... Фиаско.
"Нормально надо было сразу делать, подумал я". Нормально это конечно хранить данные в приспособленной для этого БД (а не в SQLite) и визуализировать тоже нормально (а не как это делает HA).
"Очевидно, тут без Кликхауса не справиться и без Редаша тоже никогда графики нормальные сделать не получиться. Я собираю телеметрию каждую секунду и хотел хранить её месяцами минимум. Для моей газовой колонки подойдет только колоночная БД. Ну и продуктовые дашборды иначе как Редаше я делать отказываюсь" - молнией сверкнул план действий в моей голове. В итоге родилось ЭТО:
https://community.home-assistant.io/t/turn-ha-into-ultimate-data-analysis-platform/661214 (там гифка, сюда не вставляется)
Да, теперь вы можете поставить в свой тв-бокс за 2к рублей целый кликхаус. И редаш. И ещё там куча костылей чтобы оно заработало. Но оно работает. Скорее как прототип, но понятно как привести в более человеческий вид.
Несмотря на бесконечное заделывание щелей, сквозняки уменьшились лишь чуть-чуть, а счет за газ не уменьшился совсем.
Окончательно я потерял надежду, что смогу его утеплить малыми силами, когда я увидел это:
Прямо из перекрытий задувает холодный воздух и в подвал, и по полам первого и второго этажей. Почему потерял надежду? Потому что основные теплопотери происходят из-за сквозняков, а устранение подобных сквозняков это минимум капитальный ремонт. Собственно фаза утепления как таковая даже не началась.
Отношения с хозяйкой портились, но не сильно. Периодически она вытворяла всякие неадекватные вещи, но это не переходило некоторой черты. В этот же раз это было совсем не прикольно, а вполне себе кринжово. Мы решили, что наверное съедем, справедливо заметив, что в середине зимы нас выгонять никто не будет (какие ещё другие дураки будут в середине зимы снимать частный дом).
Но нет. Во время новогодних каникул нас брутально выпизживают не возвращая залог. А ведь можно было ещё поставить в каждую комнату на батарею шаровые краны и регулировать температуру в каждой комнате...
и что, все? это типа история провала? ты решил рассказать как ничего не получилось?
Весна
Но есть и хорошие новости. Мы сделали новый шилд:
У шилда мы исправили фатальные недостатки с питанием, упростили себе жизнь, а также прочитали спеку на SPI ESP32 и теперь он работает. Ещё попали в ченж лог ESPHome.
Сделали розетки:
Очень много времени было потрачено на страдания по корпусу для розеток. Я психанул и решил сделать металлический крафтовый корпус. Сам корпус выступает в том числе в роли радиатора для полупроводников внутри. Основное отличие от масс-маркета: розетки сделаны на оптопаре и позволяют диммировать нагрузку. Мощный металлический корпус выдерживает даже 2квт нагреватель.
На данный момент я снова в пути и без компьютера, но с есп и розетками. Сейчас они работают как термостат и поддерживают постоянную температуру в моем жилье. Одна из причин подевелопить, это желание управлять этим термостатом из телефона.
Мы начали активнее вести телеграм канал, все новые %%больные%% проекты будут освещаться и там
ну а реально полезное можно что-то сделать на твоем железе?
Да. Можно превратить обычный электрический чайник в су-вид
Если честно, у меня в планах челлендж "сделай сувид из каждого электрического прибора на кухне". И вообще на кухню у меня много планов: иногда я забываю отключить гриль + недавно Home Assistant прокачали на тему голоса и можно пораспознавать речь без корпоративных облаков и споттерах на устройствах.
Итоге
К сожалению, много идей остались нереализованными. Автоматические вытяжки по влажности/co2, межкомнатные интеркомы, ракеты к ближнему космосу под управлением esp32...
Но я пока пойду готовить ребрышки сувид.
До ремонта в комнатах было лучше. Но это чисто мое мнение конечно же.
Прочитал на одном дыхании. Очень интересно, много сюжетных линий, да и в целом достаточно все непонятно – люблю такой поток сознания.
Спасибо за интересный пост
JFYI: Yamaha HS - мониторы ближнего поля, рассчитаны на слушателя сидящего в определенной точке в примерно метре или ближе. Под телек в комнату нужны обычные hi-fi колонки.
Да в смысле?! А я что со своим делал на той неделе? Может его просто отмонтировать сначала надо?
P.S.: Да, статья классная, прикольная, пиши ещё)
Какие датчики CO2 используете? Пытаюсь сейчас найти что-то хорошее, недорогое и с подключением к HA.