↑ К новым записям

17 марта 2024

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

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

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

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

16 марта 2024

Как вы успели заметить, я таки доехал до дома. Приехал вот недавно, буквально час назад. Хотел выезжать в пятницу вечером, чтобы с утра субботы сразу начать делами заниматься, но, жена попросила на пятницу остаться. Пришлось повиноваться 🙂

Я в этот раз привез мини компьютерный стол и кресло. А так же микроволновку. Стол мой, я покупал его на квартиру на балконе ставить, чтобы там работать. Но в итоге вернулся к старому большому столу и работаю на квартире жены (все равно без дела стоит), а этот мелкий стоял на балконе тоже без дела, поэтому решено было его забрать. Кресло я взял у своей маман. Ей оно оказалось тоже не нужно. А мне тут для работы пригодится, ибо свой рыбацкий стул я давно сломал 🙂

Микроволновка так же от маман. Она ее когда-то давно сломать успела, и купила по итогу новую. А эта стояла без дела. Я подумал, что заберу и починю, и буду пользоваться. А она оказалось вполне себе даже рабочей - кроме клинящего мотора вращения стола проблем с ней больше нет. Так что вот, обживаюсь тут потихоньку.

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

Что-то я все же сделал. А именно разметил будущее положение стен для второго санузла и чутка прорезал и выдолбил стяжку. Снял пока первый слой, толщиной в 2.9 см. На сколько хватило моего штробореза. Ну а дальше придется просто болгаркой с перфоратором. Но это завтра уже.

14 марта 2024

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

Так же изменил источник температуры для термостата (с средней по всему дому, на температуру в спальне), и поднял уставку до 25 градусов.

Начинаю прогревать дом, ведь, завтра я еду обратно :)

Запилил тут по быстрому интерфейсик для своего импровизированного термостата. Теперь можно включать и отключать его, а так же управлять температурой прямо через интерфейс Home Assistant. И больше никаких перекомпиляций приложения для того, чтобы изменить температуру в комнате :)

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

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

9 марта 2024

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

Я давно понял, что какие-то универсальные средства автоматизации (HA, nodered и т.п.) мне не подходят. Уйдет кучу времени на то, чтобы стать гуру в них, нащупать все подводные камни. Да и на выходе это выглядеть будет все так себе. Поэтому я сразу для себя решил, что у меня будет свой кастомный сервис, который будет как раз автоматизировать все. А автоматизации я буду писать на настоящем языке программирования - Go. А не эти всякие yaml'ы и прочую шляпу. И в общем, начало положено.

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

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

В ПИД регуляторе я использовал только интегральную составляющую, поскольку система очень инертна и медлительная, поэтому пропорциональная и дифференциальная тут не к месту. Будут слишком большие прыжки по температуре вверх или вниз. А с очень маленькими коэффициентами оно и нафиг не нужно.

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

А на этом графике видно, как мой термостат менял температуру котла последние несколько дней.

Я когда уехал, в доме отопление отключил и он успел остыть до 12-15 градусов. Так что, как я завел свой термостат, он достаточно быстро разогнал котел до 70ти градусов.

Затем, как нужная температура в доме был достигнута, он начал уменьшать температуру на котле.

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

Кстати еще большой плюс моего термостата: я реализовал петлю гистерезиса.

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

Конечно, в котле есть свои настройки гистерезиса. Но, поскольку я сейчас нахожусь за 500 км от котла, в нем я эти значения реализовать не смогу. Зато, могу реализовать такое поведение удаленно на стороне своего кода. И, я его реализовал. Сейчас оно работает не идеально, иногда бывают моменты когда врубается гистерезис котла (это в целом даже по скринам видно). Но, когда отрабатывает мой алгоритм, то котел между включениями примерно около часа проводит в отключенном состоянии, что уже вполне себе приемлемо и не так страшно за судьбу клапанов, которые могут выйти из строя через год или два.

Сейчас у текущей реализации термостата есть некоторые проблемы:

1. Он не сохраняет свое состояние в случае перезапуска. А надо бы. Дело в том, что после запуска термостат не сразу имеет представление о том, какая температура в среднем по дому. Потому что она не запрашивается с датчиков, а они через mqtt сообщают ее. А они могут сообщить в интервале от 20 минут и до часу. И вот примерно термостат в районе часа после своего запуска не имеет полной картины того, какая погода в доме. Что влияет на его решения. Ну и по ПИД регулятору тоже было б неплохо хранить ошибку. Ведь, интегральная часть она не моментальной вычисляется, она накапливается со временем. И после перезапуска естественно приходится ее заного накапливать, чтобы начать формировать адекватный управляющий сигнал, а на это может потребоваться несколько часов.

2. Сам регулятор. Нужно в будущем произвести более тонкую настройку I коэффициента, исходя из накопленной статистики. Так же, сейчас вычисление управляющего сигнала происходит раз в 20 минут (первоначально было раз в минуту), я думаю поднять это время до часу. Потому что данные с датчиков все равно в среднем раз в час приходят + требуется еще время на нагрев воздуха, а нет смысла копить ошибку на старых данных.

3. Интеграция с HA. Да, сейчас термостат никак не управляется через HA, и чтобы изменить температуру которую нужно поддерживать, нужно менять это число в коде и перекомпилировать и перезапускать сервис на сервере. Что приведет к проблемам из-за пункта 1 🙂

4. Баги 🙂 Как минимум реализация моей петли гистерезиса содержит какие-то проблемы, из-за чего не всегда идет все как планировалось, может еще где-то что-то есть, но вскроется это в будущем.

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

А с счетчиком все отлично. Я сделал отдельную панельку где вывел данные с счетчика которые меня интересуют больше всего, есть графики по их изменению. С панелькой энергии тоже все отлично. Она конечно станет более интересной когда мы заедем в дом, когда появится ИБП, солнечная панель на крыше... Упс, что-то я сильно далеко забегаю и спойлерлю вам тут :)

Кстати, я ж код обещал. Вот в общем: https://github.com/lan143/metrology-master/

Он пока не доведен прям до того состояния, до которого я хотел бы. Но, как только там все зараотало как надо, я что-то потерял интерес дальше вылизывать архитектуру и причесывать код. Так что, пока вот так. Но, у меня в обозримом будущем будет еще интеграция водяного и газового счетчика, так что, в процессе доделаю все что напланировал.

5 марта 2024

Вчера под вечер уже вспомнил, что надо бы написать в Тепловодохран (производители моего счетчика), чтобы они мне инфы специфичной по нему прислали. Ну а поскольку надежды на то, что они ответят, и даже если ответят, то не пошлют меня, было мало, принялся реверсить их приложение для конфигурирование счетчиков. Благо оно написано на C# и декомпилируется на изи. В общем, ночью нашел все что меня интересовало, делать уже начал с утра. А в 9 утра они мне таки ответили и прислали спецификацию :) Может я какой-то полезной инфы из нее почерпну еще, ну а пока, все основные параметры которые меня интересовали я выцепил и сделал проброс их в Home Assistant. Выглядит это сейчас как-то так. Естественно есть история по каждому параметру. Едиственное что меня смущает, это то, что реактивная мощность постоянно скачет то с десятков ВАр, то десятков тысяч. Не знаю, может это нормально, надо почитать будет. Ну а Общая мощность в целом выглядит норм.

4 марта 2024

Бахнул вчера интеграцию с HA для своего софта который собирает показания с счетчиков. И, все работает.

Я настроил еще панельку энергия в HA, теперь там потихоньку собирается инфа и можно смотреть графики всякие.

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

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

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

Замерщик говорил, что у них очередь на установку, мол, нужно будет пару недель подождать после готовности, а мне мастер звонит через 5 минут и такой: завтра приедем дверь ставить. Конечно, такой вариант не подходит, поэтому договорились, что в следующий мой приезд я им наберу и они приедут и установят дверь. Надо будет ток до вызова их заштукатурить проем, чтобы дыра не была такая большая. Хотел штукатурить в эту поездку, но, не срослось. Да и погода холодная была, где-то искать теплопушки и греть штукатурку тоже не хотелось.

2 марта 2024

Ну все, текущая поездка подошла к концу. Встретится с домом по классике через 2 недели :)

1 марта 2024

Вчера не писал, потому что по сути нифига не делал.

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

Сегодня тоже особо ничего не делал. Но, что-то я таки делал :)

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

Подключил счетчик к серваку по протоколу RS-485, и решил по-быстрому написать софтину, чтобы убедиться, что соединение корректное и я смогу потом разрабатывать софт. Иии у меня несколько часов не удавалось получить ответа от счетчика. В какой-то момент я понял, что то что я отправляю идеальное, и ошибок больше нет (я сравнивал с примером от старой документации к протоколу), и тогда стало понятно, что проблема хардварная.

Проверил подключение витой пары, все верно было. И потом я внезапно подумал, что а вдруг на счетчик нужно внешнее питание подавать? Внезапно, да? Но так и оказалось. Конкретно моя версия счетчика не имеет встроенный преобразователь для питания низковольтовой схемы, и ей нужно внешнее питание. Странная херня на самом деле, ведь как-то ж та схема что обслуживает экранчик и ведет статистику питается, почему нельзя было и на остальную схему это распространить? Но, видимо я чего-то не понимаю…

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

Потом нужно будет намутить какой-нибудь небольшой блок питания на Дин рейку и рядом с счетчиком поставить.

Ну а потом начал доводить свой софт до какой-то кондиции. Стало интересно все же считать с него попадания. Можно было б это отложить и на потом, но как оказалось, на те данные которые мне нужны документации совсем нет, поэтому опять реверс инжиринг и мне нужно было иметь счетчик под боком, чтобы снимать с него показания.

И буквально за какой-то час нашел данные которые хранят в себе показания по тарифу 1 и тарифу 2, ну а сложив их можно получить суммарное потребление. То что надо, по сути необходимый для меня минимум.

Теперь можно будет спокойно заниматься причесыванием кода, оформлением интеграции с home assistant для отправки туда данных и чтоб можно было графики красивые рисовать. Ну и автоматически отправлять показания 25го числа в Россети.

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

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

загрузка…