А вот, собственно, и то, с чего началось мое близкое знакомство с внутренностями tuya-based-устройств — упомянутая ранее автоматическая кормушка для собаки. По случаю взял в ноябре 2025-го — решил, что может быть полезна в некоторых ситуациях. Выбор пал на такое:
Обошлась со скидками чуть менее 22$ (базовая цена была 25$); старая ссылка нерабочая, но на момент написания подобные варианты попадаются по ценам около 50$.
Проверил — работает. И… сразу разобрал. Как же без переделки под Home Assistant? 🙂
Внутри — упомянутая ранее «странная» схема с практически незадействованным мощным контроллером. Вырисовал обвязку функционального контроллера (оптопара справа внизу — уже моя модификация, о ней ниже):
Беспроводной модуль — WBR3, что-то на базе Realtek‘а. В теории можно было даже зашить через ESP Home, но на тот момент кормушка была надолго отложена, а сейчас решил не морочить себе голову и просто использовать ESP32 C3 по опыту с «реле всего». На плате присутствует нераспаянный звуковой модуль для общения с питомцем; в корпусе есть место под динамик.
Функциональный контроллер общается с беспроводным через RX/TX, но! Тут реализован режим энергосбережения. Ноль беспроводного контроллера подключается по необходимости и только после инициализации функционального. В батарейном режиме беспроводной контроллер отключен и кормушкой можно управлять только с помощью кнопки на панели.
Как уже писал раньше, сначала думал вообще выкинуть функциональный контроллер и все исполнительные устройства прицепить на беспроводной. Сейчас, в свете знакомства с tuya, решил действовать менее варварским методом 🙂
Убрал штатный контроллер, зашил и распаял свой, глянул Datapoint’ы:
[13:18:36.775][C][tuya:041]: Tuya:
[13:18:36.789][C][tuya:058]: Datapoint 10: int value (value: 0)
[13:18:36.800][C][tuya:054]: Datapoint 1: raw (value: 00)
[13:18:36.815][C][tuya:062]: Datapoint 4: enum (value: 0)
[13:18:36.825][C][tuya:064]: Datapoint 13: bitmask (value: 0)
[13:18:36.845][C][tuya:074]: Product: '{"p":"13yxt7ukaktyacqi","v":"1.0.0","m":0}'
Не густо, но, собственно, зачем больше? Проверил в работе.
- Datapoint 4 update to 1 — начало подачи порции (нажатие на кнопку)
- Datapoint 14 update to 1 — а вот этот в карте не присутствует и всегда ставится в 1 одновременно с окончанием подачи порции.
- Datapoint 4 update to 2 — окончание подачи порции
- Datapoint 4 update to 0 — срабатывает уже далеко после подачи порции, но только в случае, если в очереди нет других подач.
Подачи считает функциональный контроллер. Т.е., можно несколько раз нажать на кнопку и столько порций выдаст кормушка. На нажатие кнопки датчика поворота реакции в логах нет.
Если зажать кнопку wifi на 5 секунд — в логах получаю «WIFI_SELECT is not handled». Как использовать (и стоит ли) — пока не придумал.
Пытался писать в меняющиеся datapoint’ы, а также те, что просто присутствуют в карте — никакой реакции. Вот тут уж действительно «не густо». В итоге единственное, что оказалось полезным — отслеживание статуса через DP4. Хотя кормушка как-то управляется с приложения и, в принципе, если проанализировать протокол со штатным контроллером — можно было бы найти обходные пути. Решил сделать проще. Так как базовая функциональность сохранялась, а управлением периферией все равно занимался функциональный контроллер — решил просто дергать кнопку подачи одним из свободных GPIO на «своем» модуле. Для развязки использовал PC817 — в общем, смотрим правый нижний угол на схеме выше. Оптопару ножками зацепил за +3.3/0 точек программирования функционального контроллера, остальное — перемычками.
В финальной конструкции пришлось оптопару чуть загнуть в сторону платы, упиралась в корпус. Возможно, стоило изначально выбрать другое место.
В итоге вся функциональность реализована вокруг дерганья кнопки в нужный момент и нужное число раз:
Есть просто кормежка нужным число порций, ну и для удобства и некоторой автономности решил добавить авторежим. Статус берется с tuya-компонента — может быть полезен для отслеживания заклиниваний или чего-то такого.
Кормушка собрана, установлена на свое место и добавлена в Home Assistant 🙂
Да, местами уже с гуглоИИ, автоматизирует рутину.
Update: несколько полезных ссылок, найденных в процессе доработки:


