Как стать автором
Обновить

Комментарии 46

Например, робота-пылесоса при помощи программы Valetudo. Возможно, вы сталкивались с ней или подобными реализациями? Поделитесь опытом в комментариях, будет интересно узнать.

Когда мой поломал себе ногу (ирония судьбы: в редуктор одного колеса попала твёрдая пыль) и я его открыл, то увидел, что помимо основной материнской платы с мозгами там висит ESP:

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

Интересно. Вероятно, ESP32 в данном пылесосе используется как wifi/bluetooth модуль (Я похожий используют как BLE-proxy для своего умного дома), а сами мозги обычно на linux работают. Насколько я понимаю, часто этот самый linux рутируют и делают с системой что хотят :)

Посмотрите в сторону Valetudo, быть может ваш робот есть в списке поддерживаемых?

Очень интересно, спасибо.

Посмотрите в сторону Valetudo, быть может ваш робот есть в списке поддерживаемых?

Быстрый просмотр показал, что нету его в списке.

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

Те же, что на линуксе - имеют SLAM/VSLAM на борту, Player в качестве интерфейса к железной части, и WiFi-модуль там более "железный", подключенный к CPU через SDIO.

Маленький хинт: если на пылесосе есть лидар или камера - 100% там есть линукс, если же нет - 99% что его там нету.

А иметь линукс и иметь геморрой с ESP32 - это надо очень сильно накуриться :)

Вполне возможно, что ESP работает как модем, через UART и AT команды. Тогда у вас будет просто дамп шифрованного https трафика

Не исключено.

Т.е. для каждого устройства это придется делать отдельно? И искать соотв. прошивку?

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

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

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

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

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

Да.

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

Тем более, что есть роутеры со встроенной поддержкой MQTT в режимах publisher/subscriber/bridge.

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

Имхо, всё-таки более перспективно изначально выбирать выбирать девайсы, которые не привязывают пользователя к проприетарным облакам

Увы, не всегда это возможно. Выбрать выключатели, реле, датчики, приводы - это без проблем. Zigbee или BLE устройств хватает. Для устройств с пультами можно найти USB/LAN-IR или USB/LAN-RF433 пульты. А вот вентиляторы, увлажнители, пылесосы, автокормушки обычно либо через облако, либо вообще без дистанционного управления.

Для некоторых устройств без дистанционного управления можно рассмотреть такой девайс, как fingerbot. Есть версии с Zigbee и BLE, но минус, конечно - никакой обратной связи, просто управляемые нажатия.

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

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

Светить HA наружу (и вообще любые части домашней сети) - это наоборот не здорово

Если нужно снаружи иметь доступ, то только VPN до дома, иначе это путь к тому, чтобы стать счастливым членом ботнета

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

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

А так разве HA не позволяет собой управлять удалённо, за пределами домашней сети?

Позволяет. Но ведь опять через чужое облако, нет?

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

Или чужой vpn

VPN и свой можно организовать. При этом наличие белого IP просто упрощает этот процесс. Кстати, я бы в текущее время не советовал открыто светить 80/443 наружу на белом IP. Я у себя их закрыл, оставил только VPN (и тут не суть важно какой: OpenVPN или тупой PPTP, главное чтобы шифрование на своих парах ключей было) и стучу ко всем внутренним ресурсам через него. Потому что очень много всякого подозрительного стало всплывать в логах последние 2 года.

Если у вас HA на домашнем сервере, то при наличии белого IP будет доступ без участия чужих облаков. Да и без белого IP со схемами через VPN вы будете зависеть от одного провайдера, которого в случае чего поменять проще, чем устройства производителя, чьи облака вдруг перестали корректно работать.

Зато весь твой зоопарк разношёрстных питомцев через одно.

Да, действительно, это нужно делать для каждого устройства, а если устройств много, то идея с перехватом трафика кажется разумной. Мало того, насколько я понимаю, ПО Valetudo для пылесосов работает именно так. Тут уже дело личного предпочтения - мне хотелось не заковать устройство и обманывать, а сделать его действительно свободным :)

Насчет удаленного доступа. Как и писали, тут два правильных пути: Либо подключить сервер к своему vpn и использовать через него, либо брать у своего провайдера постоянный белый ip. Я выбрал именно второй вариант. Купил домен, прокинул порты, получил сертификаты...

Valetudo - "клон" китайского облака, если быть точнее. Оно реализует базовые удаленные команды управления девайсом + сервер карт для софта пылесоса, и торчит "наружу" через весьма приятный веб-интерфейс + mqtt.

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

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

Не проверял, но вроде после получения ключа облако не нужно. Интеграция xiaomi_airpurifier цепляется локально. По крайней мере, IP-адрес увлажнителя в настройках указывается из внутренней сети. Только этот адрес желательно зафиксировать в DHCP, чтобы не пришлось менять при перезагрузке роутера.

Именно это я и делал, да. Настроил в приложении, получил токен, но увлажнитель перестает отвечать через какое-то время если ограничить внешний трафик на роутере :(

Фото с котом это читерство чистой воды :)

В тексте указано, что это не кот, а кошка. Так что не считается :)

Это обобщено, например как "человек", уточнения мужчина или женщина.

Ну речь же за увлажнение! А испарение воды суть её очищение от примесей.

Спасибо, @uneeny, прочитал с интересом. Только не понял, каким образом на фото, где провода от адаптера к нужным пятачкам на плате подключены, они там держатся?

Была похожая история с умной колонкой от них же. Вскрытие показало, что там CPU mt7621 на архитектуре MIPS с Linux. Поставил туда чистое ядро + проигрыватель с плейлистом интересующих онлайн радиостанций. В итоге имеем тот функционал, что изначально от устройства требовался без дополнительных облаков и прочего. Кстати, в данной умной колонке был ещё и микрофон, хотя в характеристиках его не значилось.

А какой вообще смысл в подключении обычного бытового увлажнителя к каким-либо сетям?

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

Извините, если демотивирую, но уж если оптимизировать, то начинать с самого начала.

У фаната умного дома нет цели, у него есть только путь.
Ежели уж можно отвязать увлажнитель от облака, то почему бы это не сделать?

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

Нормальные увлажнители примерно так и работают.
Подключаются стационарно к водопроводу, пар выдают в канал вентиляции - кондиционирования. Или в виде тумана в помещение воду впрыскивают через форсунки высокого давления. Но это именно нормальные увлажнители, а не "коробочки" от Xiaomi.

Ну де-мотивировать можно только того у кого нет цели :) Моя же цель была проста, надоело бегать с кувшинами носить воду. Именно эта модель хороша тем что тут бак открытого типа, поэтому я ее и выбирал для дальнейшего апгрейда. Прошив своим кодом, я получил прямой доступ к состоянию всех показателей увлажнителя и реализовал: выключение подсветки, выключение "пищалки", считывание события что закончилась вода из штатного контроллера без колхоза из дополнительных датчиков, залив воды по необходимости из магистрали от обратного осмоса, дополнительно, для интереса, сделал расчет расхода воды в мл/час. Еще хотел сделать регулировку мощности от показаний своих датчиков влажности, но как правильно заметили, включил на зиму и весной выключил, поэтому затея не реализовалась. Плюс встроенного автоматического режима в самом увлажнителе оказалось достаточно, авто режим реализован не в ESP, а во внутреннем микроконтроллере увлажнителя, так что это режим остался функциональным после моей пере-прошивке WiFi модуля. Работает второй год и моего внимания не требует никакого. Я доволен, все цели достигнуты.

Одно слово. Шикарно!

Интересно было почитать. Поностальгировал. Но брать готовое и просто прошить это же не спортивно, но допустимо. Я три года назад сам "парсил" как основная плата именно этого увлажнителя по Serial общается с ESP. Все запротоколировал, запрос - ответ все сообщения как они общаются и в итоге снес к чертям родную прошивку и написал свой код. Тут прашивали вверху зачем: ну первое это какая то стойкая неприязнь к облакам, особенно к китайским сформировалась за годы использования всяких полу-умных вещей. Второе более простая интеграция в свой умный дом без облаков, MQTT и далее что угодно. Треть: как раз контроль наличия воды и автоматическое включение клапана для заливки воды из магистрали от обратного осмоса. Эта модель чем интересна так это тем что у нее бак не закрытого типа, так что просто сверху/сбоку трубка для заливки воды и все, прощай беганье по два раза в сутки с кувшинами.

Xiaomi Furrytail Pet Smart Feeder
Xiaomi Furrytail Pet Smart Feeder

А никто не находил прошивки для такой кормушки Xiaomi Furrytail Pet Smart Feeder? Да да, это та самая кормушка, которую взломала "Русская хакерша". Внутри такой же модуль ESP-WROOM-02D с ESP8266.В кормушке оба контроллера общаются так же через UART (Serial), но в отличии от увлажнителя из топика, скорость на порядок меньше и равна 9600 и никакого читабельного текста - пакеты идут совершенно не похожие на текст. Я пока повесил ESP32 подслушивать оба Tx/Rx-Rx/Tx. Неделю сохраняю лог файлы, кое что уже расшифровал.

Странное утверждение про «нелокальность» miio или miot решения. Да, нужно зарегать устройство в MiHome и получить токен, но дальше то он управляется локально. Да, есть у некоторых устройств только облачные функции, но базовый функционал работает локально великолепно. Без перепрошивок, смс и прочего 😂

У Tuya для WiFi-устройств тоже достаточно было зарегистрироваться как разработчик, получить бесплатный ключ и использовать localtuya или tuyalocal, продлевая ключ раз в полгода. А теперь бесплатный период больше не продлевается, а платный аккаунт начинается от $25000 в год. И остаётся только использовать интеграцию с облаком.
Облака - штука эфемерная.

Так с туей то все давно понятно. Но сяоми так не беспредельничает и ничего там заводить не нужно девелоперского. Просто в статье заявлено что даже получив токен все равно только облачное управление - но это глобально не так. Местами да, но в 90% случаев оно дает локальное управление. А в статье заявлено что «баста карапузики а не локальное»

Нет, в статье несколько другое сказано. После получения ключа управление локальное, но если устройство перестаёт видеть облако, то управление теряется до восстановления связи.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий