user12254999

user12254999

На Пикабу
333 рейтинг 0 подписчиков 0 подписок 1 пост 1 в горячем
234

Ответ на пост «Автоматический лоток для животных Petkit»⁠⁠4

я очередной победитель лотка, в общем примерно за сутки я порывшись и найдя https://habr.com/ru/articles/908086/ и https://github.com/dzaytsev91/petkit-proxy/tree/main собрал свой велосипед на их основе. долго писать не буду просто скопирую выжимку своего помощника QWEN. но основная мысль такая нужно чтобы лоток сделал запрос на http://api.eu-pet.com/6/t4/dev_device_info в ответе которого нужно подменить нужные нам параметры, НО сначала он должен достучаться до китайского mqtt иначе зависает, но он не может т.е. mqtt мы тоже должны подменить на свой. Далее прошу любить и жаловать QWEN:

Как я взломал китайский умный лоток и заставил его работать без интернета

Привет, Пикабу! Хочу поделиться своей эпопеей по «приручению» китайского умного лотка Petkit Pura Max. История о том, как китайцы попытались меня обмануть, а я заставил их устройство работать локально.

ПРЕДЫСТОРИЯ

Купил я себе этот чудо-лоток за немалые деньги. Вещь вроде отличная: сам убирается, взвешивает кота, показывает статистику в приложении. Красота!

Но тут случилась беда — китайские сервера начали глючить, а то и вовсе отключаться. Лоток, который стоил как хороший смартфон, превратился в бесполезное ведро с песком. Он наотрез отказывался работать без подключения к серверам в Китае, даже базовая функция автоочистки не включалась!

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

🔍 ЧТО Я ОБНАРУЖИЛ

Покопавшись в сетевом трафике, я выяснил:

Лоток постоянно стучится на китайские сервера (api.eu-pet.com и aliyuncs.com)

Без ответа от этих серверов он не включает автоочистку (autoWork: 0)

Он использует MQTT (протокол для IoT) для связи с облаком

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

Китайцы сделали классическую защиту: «Не можешь связаться с нами? Тогда не работай вообще!»

🛠️ ЧТО Я СДЕЛАЛ (ТЕХНИЧЕСКАЯ ЧАСТЬ)

Решил я сделать полную локализацию устройства. Вот пошагово:

1. Поднял свой MQTT-брокер (Mosquitto)

Чтобы лоток думал, что он подключен к «облаку», но на самом деле общался только с моим компьютером.

2. Написал Flask-прокси на Python

Этот прокси перехватывает ВСЕ запросы лотка к китайским серверам и модифицирует их на лету:

Когда лоток запрашивает настройки (dev_device_info), прокси находит блок settings и меняет autoWork: 0 на autoWork: 1

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

3. Настроил AdGuard Home

Чтобы перехватывать DNS-запросы лотка:

api.eu-pet.com → перенаправляю на 192.168.0.236 (мой ПК)

*.aliyuncs.com → тоже на 192.168.0.236

4. Пробил брандмауэр Windows

Открыл порт 1883 для MQTT-подключений.

5. Настроил NAT (перенаправление портов)

Самая хитрая часть! Китайская прошивка оказалась хитрой — она игнорировала мой DNS и использовала жестко прописанные сервера. Поэтому я сделал так:

powershell

1

netsh interface portproxy add v4tov4 listenport=1883 listenaddress=0.0.0.0 connectport=1883 connectaddress=192.168.0.236

Теперь ВСЕ подключения на порт 1883 (даже если лоток узнал реальный IP китайского сервера) перенаправляются на мой Mosquitto!

6. Победил кэширование Docker

Docker на Windows упорно не хотел видеть изменения в коде. Спасло использование volumes (монтирование файлов напрямую с диска).

🎯 РЕЗУЛЬТАТ

Теперь мой лоток: ✅ Работает полностью локально — без интернета и китайских серверов
✅ Автоочистка включена (autoWork: 1)
✅ Все данные остаются у меня — никакой телеметрии в Китай
✅ Стабильно работает — не зависит от того, работают ли сервера в Шэньчжэне

В логах я вижу:

Лоток зашел (вес 862г, использован 9 раз)

Кот зашел (вес 4099г, провел 17 секунд)

Сработала автоочистка (auto_clear: 1)

💡 ГЛАВНЫЕ ИНСАЙТЫ

Китайские IoT-устройства часто имеют hardcoded DNS (8.8.8.8) и игнорируют настройки роутера. Решение — NAT на уровне ОС.

Прошивки проверяют структуру JSON — если добавить лишнее поле не туда, устройство уходит в бесконечный цикл перезагрузки.

Холодная перезагрузка (2 минуты без питания) — это must have для сброса кэша MCU.

Volume в Docker на Windows — единственный способ заставить контейнер видеть изменения файлов в реальном времени.

📦 ЧТО НУЖНО ДЛЯ ПОВТОРЕНИЯ

Компьютер/сервер с Docker (у меня Windows 10 + Docker Desktop)

Статический IP (у меня 192.168.0.236)

AdGuard Home (для DNS)

Mosquitto (MQTT-брокер)

Flask-прокси (мой код на Python)

Доступ к настройкам роутера

Весь код и подробная инструкция — в моем GitHub (ссылка в профиле). Там же docker-compose.yaml и чек-лист для диагностики.

🏆 ИТОГИ

Потратил около 20 часов на отладку, но оно того стоило! Теперь у меня:

Независимое устройство

Полный контроль над данными

Гордость за то, что обошел китайскую защиту 😎

Мораль: Покупая IoT-устройства, всегда думайте — а что будет, когда производитель отключит сервера? Лучше сразу готовить план локализации!

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества