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

15 января 2025

Привет 👋

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

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

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

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

14 января 2025

Кажется, я пофиксил проблему с подсчетом расхода воды. Заценить можно тут: https://github.com/lan143/navier/commit/7c1c6647900e8ee8b0bde137e6d8f843135dd3c0

Собственно, как я это сделал. Я решил, что зачем изобретать велосипед, пойду да посмотрю как это делает Ватериус. Благо он опенсурс. В коде его конечно черт ногу сломит. Особенно не очень хотелось курить даташит по attiny85 чтобы понять что там происходит (ибо по коду там вовсю всякие регистры процессора юзаются). Поэтому я решил погуглить, вдруг есть какое-то описание его работы на хабре. И таки я нашел, вот эту статью: https://habr.com/ru/articles/418573/ Судя по всему она была написана еще на первых версиях Ватериуса, когда он не поддерживал всякие намуры, и реализация считывания данных с счетчика там просто гениальная: просто каждые 250 мс проверяем состояние пина. Если он притянут к земле, то еще раз проверим через 250 мс (вдруг словили наводку), и если он так же притянут к земле, то считаем что замкнулся геркон в счетчике и плюсуем 10 литров. Блин, почему я до такого не додумался) Я начал изобретать с прерываниями и все такое. Случился короч оверинжиринг.

Дальше читать не стал, идея понятна, осталось реализовать. Я сразу доработал идею, что когда мы плюсуем 10 литров, после блокируемся до следующего поднятия пина на плюс питания. И тут возникает интересная ситуация: если вдруг счетчик остановился в момент когда геркон замкнут, и потом случилась перезагрузка контроллера, то после загрузки флаг блокировки сбросится и мы опять приплюсуем 10 литров лишние. И так будет каждую перезагрузку. Сначала я подумал, что ну чо там, редкое событие. Но, когда отлаживал код, у меня счетчик как раз встал на показании 0 литров, и каждую перезагрузку у меня было +10 литров)) Штош, надо пилить сохранение флага))

Решил сделать по простому: когда записываем показания в кольцевое хранилище, к текущим значениям выставим 1 самый левый бит в 1, в случае если есть блокировка. Затем, когда блокировка была снята, запишем еще раз значение в кольцевое хранилище, но на этот раз без крайнего бита в 1. Далее при загрузке мы можем восстановить информацию о блокировке и не делать +10 литров. Идеально вроде. Это я собственно реализовал, проверил, все отлично работает.

Кто-то может сказать, что, ну мол, ты ж теперь сможешь меньше кубов воды хранить. Но, спешу вас обрадовать - для хранения показаний у меня используется переменные типа uint32, а это 32 бита. Один бит мы отдали под флаг блокировки, получается что для показаний у нас осталось 31 бит. Максимальное значение, что мы сможем туда сохранить, будет 2 в 31ой степени - 1. А это: 2147483647 литров, или 2147483 кубометров. Что-то мне подсказывает, что такого хранилища хватит не только до конца жизни esp32 (в которой флешка сдохнет спустя 100к перезаписей) но и до конца моей тоже.

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

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

Еще вот сегодня СКАТ и контроллер повесил на стену в щитке. Сначала сделал разметку и просверлил отверстия. Делать это было конечно не очень удобно, там толком не развернешься, всего 15 см внутри из доступного пространства. Но кое как я это сделал, и с виду как будто ровно.

Затем навесил СКАТ и прикрутил рейку, на рейку поставил контроллер. А за ними потянулся вот такой не красивый клубок проводов и кабелей. Я попытался кое как его распутать (3е фото), но идеальный кабель менеджмент я устрою уже наверное завтра. А все потому, что завтра должен будет прийти кросс бокс, в котором я собственно и сделаю разводку. И думаю с этим щитком на время можно будет закончить.

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

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

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

А щаз занимаюсь тем, что пытаюсь отодрать остатки затирки с пола. Она собака фиг чем смывается. Уже купил спец смывку от церезит, как раз типо для эпоксидной затирки которой больше суток, но ее даже она не берет. Сейчас тру металлической губкой вместе со смывкой, вроде что-то получается, но пока не понятно что. Если не поможет, то наверное придется перейти на более жесткий абразив, наждачку например. А там может и до алмазных дисков дело дойдет 🙂

13 января 2025

Привет. Апдейты по контроллеру, что я вчера запилил.

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

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

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

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

Из проблем: до сих пор есть ложные срабатывания. Сегодня утром откручивал показания чуть назад, чтобы счетчик не опережало. И сейчас тоже это сделал. За пол дня получается убежало вперед на 260 литров, или было 26 ложных срабатываний. Это конечно печально, надо думать как это пофиксить.

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

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

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

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

После прочистил от клея отверстия для дюбелей, установил дюбели, установил вытяжку, подключил кабели и собрал. Готово :)

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

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

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

Для начала я отмыл окно. А то там все в клею было. Как было до я не сфоткал, но, можете проскролить выше и поискать фотки когда я докладывал плитку. Собственно, с тех пор особо ничего и не поменялось :) Но теперь я все оттер и окно чистенькое.

После занялся зачисткой швов от остатков клея. Успел за сегодня пройтись 2 ряда плитки по кругу, ну и все пока. Дите спать уложили, чищу швы я дремелем, а он шумит, так что дальнейшая очистка швов переносится на завтра.

12 января 2025

Исходники пуляю вот сюда: https://github.com/lan143/navier

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

Фух, привет еще раз :) Уже запилил контроллер в прод, так что могу рассказать про него.

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

Решил что писать буду на своей платформе а не на esphome, программист я или кто :) Поэтому набросал по быстрому своих модулей в пустой проект, решил прошить и посмотреть как оно будет, а не тут то было - питание через usb оказывается не подается, нужно внешнее питание. Свободных блоков питания на 12 вольт под рукой не было, так что я сразу подключил к СКАТу, заодно убедился, что он тоже в порядке. И после этого прошивка пошла.

Начал разбираться с модулем ethernet, что там есть. Разобрался с библиотеками, написал свою обертку которая пробует подключиться по кабелю к сети, если не получилось - тогда wifi. Если и с ним не вышло - ну тогда поднимаем hot spot, что уж делать. После парился с библиотекой discovery под HA. У меня в голове уже давно выработалась примерная архитектура, какой она должна быть. Начал ее реализовывать. Были баги, куча отладки. По итогу вчера уже ночь у меня получилось ставить плату щелкать релюшками через Home Assistant.

А сегодня с утра принялся уже за написание счетчика. Тоже все пошло не сразу, но к обеду что-то кое-как работающее написал (что вам показывал в кружочках выше). Решил, что сейчас по быстрому установлю и пойду другими делами заниматься. Но, внезапно как контроллер оказался в туалете, он начал сходить с ума :) Счетчик считал сам собой без остановки. Я подумал что наводки какие-то, но нет. Щупал осцилографом, все вроде в порядке. А он считает и считает несуществующие литры. По итогу сделал небольшие костыли, которые вроде побороли эти спонтанные срабатывания. Странно конечно, вроде на контроллере все подтяжки есть. Да и осцилографом смотрел, чего-то критичного не увидел. Возможно особенности срабатывания прерываний в esp32. У меня изначально стоял RASING, т.е. поидее прерывание должно было сработать при изменения уровня сигнала на входе с LOW до HIGH. Но похоже, оно срабатывает не просто от 0, а если следующий уровень был чуть больше предыдущего. Хотя странно, на столе все работало норм...

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

Расположил я СКАТ и контроллер внизу, провода по классике болтаются посреди ящика. Ну, пока вот так. Мне чтоб на стену повесить надо дин рейку купить, а так же кросс модуль (а то оказалось, что в контроллере для земли ток один пин). Попозже как куплю все недостающее, повешу как-нибудь на стену. Как-нибудь - потому что не представляю как я там буду стену бурить чтобы закрепить это все.

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

А вот так работает автоматизация с вытяжкой.

Пока что алгоритм ее работы очень простой: если включается свет, то включаем вытяжку. После выключения света вытяжка отключится через 10 минут сама. Эту автоматизацию я написал ее во время новогодних праздников, и вытяжку повесил на обычное Zigbee реле. На нем она и работала до сегодняшнего дня. Теперь вытяжку включает мой контроллер. Ну а автоматизация та же осталась, в ней только поменялось что включать.

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

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

В подвале я кстати потихоньку навожу порядок. Начал заниматься этим еще на праздниках. Но вот не успел закончить.

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

Еще я тут на днях затащил мониторинг BMS от аккумуляторов в HA. В качестве контроллера - esp32nodemcu, которая у меня типо как тестовой, но уже стала чутка боевой :)

Подключается она к BMS пока через Bluetooth, зашито в ней esphome. Вроде работает, но частенько зависает и отваливается на пару минут. Потом опять включается. Уж не знаю в чем там проблема. Мне сейчас идет кабель с разъемчиком, чтобы подключать по uart (не захотел портить красоту и хочу на разъеме подключать). Так что, как он придет, подключу проводом и посмотрим будут ли еще отвалы или нет. Если будут - штош, придется свою прошивку писать. Не очень хочется ковыряться внутри esphome пытаясь понять из-за чего там виснет :)

ЕСПха пока подключена на usb порт сервера, питается собственно от нее. Как будет подключение по кабелю - питаться будет от BMS. Висит снаружи шкафа на кабеле потому что bluetooth внутрь шкафа не пробивает :)

И пришлось поставить роутер в подвал, потому что до wifi из дома не достает (90-100% потерь пакетов). Так что, поставил временно пока роутер что у нас был на съемной квартире. Его перенастроил в режим точки доступа, так что он просто wifi раздает и ничего более не делает. Надо заказать нормальную точку доступа в подвал, но, потом...

Кстати, тестировал тут на днях аккумуляторы. Отключил питание ИБП и поставил таймер на час. Через час включил обратно. Этот час дом успешно питался от аккумуляторов. И, вроде все в порядке. Напряжение на них не просело (значит емкость реальная), разбаланса тоже не случилось (значит ячейки более-менее норм). Так что вот, к следующей аварии на электросетях вроде как мы готовы 🙂

(на скрине кстати емкость не совсем правильная указана, так что остаточное время работы не 6 часов, а 12 где-то)

И это еще не все :) Полочку вот себе в кабинет собрал.

Купили мы ее в леруа еще в 21ом году, планировал разместить еще на съемной хате в пятигорске. Но, чет не срослось. В итоге она простояла все это время в упаковке в Цимлянске. И вот, наконец-то ее час настал.

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

загрузка…