Проект для ESPHome и Home Assistant
![](https://private-user-images.githubusercontent.com/64090632/275288783-3ccaa24d-f8f3-4367-8f9f-fe86b93e63e3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUyODg3ODMtM2NjYWEyNGQtZjhmMy00MzY3LThmOWYtZmU4NmI5M2U2M2UzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyNzdmN2ZmMzgwM2FkYWIwYTBlMDdkYWFlZTc1YTEyNDFmZTY5YjYyYmFiMjBmYzJkNzA0NmM3NjNmNDg3OWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.QTp1r4yJWOWmjUfr4lyQvdLkevQQ2E0lFVKUCnWnxME)
Кошачий туалет Tonepie работает под управлением Tuya, который можно перешить на ESPHome. Мы отвязываем лоток от облачного сервиса Tuya и можем программировать свой лоток так, как считаем нужным
Внимание! Все материалы этого проекта (прошивки, схемы и т.п.) предоставляются "КАК ЕСТЬ". Всё, что вы делаете с вашим оборудованием, вы делаете на свой страх и риск. Автор не несет ответственности за результат и ничего не гарантирует. Перепрошивка кошачьего лотка требует вмешательства, что автоматически лишит вас гарантии.
Важно! Насыпайте наполнитель в выключенный лоток. После подачи питания, автоматический лоток делает автокалибровку и обнуляет вес наполнителя и только после этого лоток будет правильно определять вес питомца. Если же наполнитель насыпать в лоток когда он включен, то лоток будет думать, что внутри находится питомец. В таком случае обесточьте лоток по питанию и снова подайте питание. Подключите например к умной розетке, тогда удобно будет перезагружать лоток по питанию. Таким образом лоток будет запускать автокалибровку и обнулять вес наполнителя
Функции лотка:
- Автоуборка
- Уборка вручную
- Ионизатор
- Защита от детей
- Инфракрасный датчик
- Удаление наполнителя
- Калибровка весов для наполнителя и бака для отходов
- Автокалибровка при включении
- Сенсоры:
- вес питомца
- длительность посещения
- мусорный бак
- питомец в лотке
- уборка
Перепрошиваем на ESPHome
На плате установлен чип WBR3. Подробнее о WBR3 можете ознакомится здесь
![](https://private-user-images.githubusercontent.com/64090632/275288826-13c54298-f1b6-4954-8e76-75da6ae8de8b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUyODg4MjYtMTNjNTQyOTgtZjFiNi00OTU0LThlNzYtNzVkYTZhZThkZThiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYxMWMwOTgyZTE3YWZjNjU3ZmMxMzVjM2YxNmQ1ODhhYjBjZjAxYTc5NjU2MDkzZmM2YmFhODRkMWFiYjg3YTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.u4x7ZzAl5ccjpAEWYtOX4WxG5AasD8K8qGIvahZGOE4)
Перед тем как выпаять чип WBR3, на всякий случай припаяйте два провода к контактам RXD и TXD и поснимайте логи, посмотрите, будут ли у вас работать сенсоры при добавлении компонента Tuya MCU. Если сенсоры работают то можете продолжать процедуру дальше.
Для справки. Обычно, чтобы снять логи подключив к контактам RXD и TXD, то подключение делается наоборот(скриншот ниже), но на мое удивление подключение было прямым, т.е не RXD>TXD и TXD>RXD, а RXD>RXD и TXD>TXD. Так что проверяйте оба варианта
![]()
![](https://private-user-images.githubusercontent.com/64090632/275288892-00c2be8c-6beb-4407-bfe3-4b0f76afba76.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUyODg4OTItMDBjMmJlOGMtNmJlYi00NDA3LWJmZTMtNGIwZjc2YWZiYTc2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWViNzljMjEzNDA2NzQxZmQzOGFiYTJjZjFiNDJjMzMxMDNhN2JiOGE3OTE4MWM2MTcwNzRhZDQ1YWRiZDMwZDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.K1RaMm28m2kTvohY1FrxBBDLY5bT94UvezNhBhYrmjw)
Чтобы включить режим отладки и выводить в логи пакеты, необходимо добавить в строки следующее. Таким образом можно увидеть пакеты на каждую команду, когда нажимаете на кнопки в приложении Tuya или через панель управления самого лотка
#Включить компонент Tuya MCU
tuya:
uart:
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
stop_bits: 1
data_bits: 8
parity: none
debug:
direction: BOTH
dummy_receiver: false
Вместо WBR3 будет использоваться ESP12-F. Говорят, что WBR3 можно перепрошить, но я не имею опыта и не хочу стирать прошивку в WBR3, так как сам чип может пригодится в будущем, например припаять обратно и поснимать логи. Делайте на свое усмотрение, можете залить прошивку сразу в WBR3 или заменить на ESP12-F.
В ESP12-F залить прошивку можно двумя способом
- Купить программатор для модуля ESP8266
![](https://private-user-images.githubusercontent.com/64090632/275288944-95595588-8338-466d-8a28-cb83634944c6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUyODg5NDQtOTU1OTU1ODgtODMzOC00NjZkLThhMjgtY2I4MzYzNDk0NGM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdiMTcyYTJjZGYyZDExYjY1MDk0ZjJiZTMwOWI1OTE0MmY4NzM4NTVlMzBhYzdhZmZmNTU1ZGIyM2M3ODQwNTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.8TE6V3IFXRoQ7WxU3dfTYJjDPE-T5JlSPxIZbWIuRxk)
- Подключить ESP12-F к USB-TTL
![](https://private-user-images.githubusercontent.com/64090632/275288969-ddbf0afd-2b02-4627-a498-203b2f690b5d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUyODg5NjktZGRiZjBhZmQtMmIwMi00NjI3LWE0OTgtMjAzYjJmNjkwYjVkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ0MTRjNTkzMGRlYzMyYmRiNzk0MDhkMjYwMmI0YWJkNTdiMjViNDhhZWZhMjViNjE5M2ZmMWU2NzNmYmZhNzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.soOvcGdCG2aqBU2KfQs8HDDGYG3kAJygmqeMo_zStI0)
Для справки! Чтобы залить прошивку, нужно замыкать контакты GPIO0, GPIO15 и GND до подачи питания(до того как вставите USB-TTL в USB разъем компьютера), а не после, тогда ESP12-F перейдет в режим прошивки
Скомпилируйте прошивку в ESPHome используя конфигурацию на выбор. Конфигурации смотреть здесь
- Базовая конфигурация имеет только управление и сенсоры без логики управления
- Расширенная конфигурация имеет логику управления и статусы, а также может иметь расписание уборки. Смотрите комментарии в конфигурации.
Заливал прошивку на ESP12-F через NodeMCU Flasher. Скачать NodeMCU Flasher можно здесь.
После заливки прошивки припаиваем ESP12-F вместо WBR3 и замыкаем контакты резисторами номиналом 10кОм. Припаивать резистор к контактам EN и 3.3v, GPIO15 и GND. Почему я не припаял перемеычку, замкнув GPIO15 и GND? Замерив мультиметров я увидел сопротивление в 326-327 кОм, а так как чип ESP12-F был уже припаян, а свободного не имелось под рукой, то не было возможности проверить контакты GPIO15 и GND на чипе и на плате лотка. Поэтому я не стал рисковать и во избежание короткого замыкания я замкнул GPIO15 и GND резистором.
![](https://private-user-images.githubusercontent.com/64090632/275289010-c0acb144-cc21-4b69-9fdf-5c48d39733d3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUyODkwMTAtYzBhY2IxNDQtY2MyMS00YjY5LTlmZGYtNWM0OGQzOTczM2QzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg2NTEzZmQxOGNjM2M2NTdiZTA4NWFiMGY2ZjdkMjYxNGQ4ZDgxYTEzZGYyMjAxNjRlZjJhYjY2YjhjZTgzMjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.IeBjYhx3eJ8Y2_644_pUW1zMUfDkFBKMBazoA1OFBG0)
Home Assistant
![](https://private-user-images.githubusercontent.com/64090632/275860445-7a338e83-c8a7-4242-aa44-fece33375e09.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzU4NjA0NDUtN2EzMzhlODMtYzhhNy00MjQyLWFhNDQtZmVjZTMzMzc1ZTA5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIyZTU2YTU0YjBkNTI5Yzc3ODQzNGYyYTI0NzE0MTQxZmE1ZDQ1YmU0ZmFhZWVhNjIyNjAyMzBkNzUwMjIyYjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.qq49PweRoam38jlx9lwRzTfv-S5YTH4GzzvBS0xwv8A)
Для работы карточки необходимо установить компоненты
Карточка
- Код карточки можно взять здесь
Код обратного таймера. Это нужно для карточки, чтобы видеть оставшееся время работы ионизатора
timer:
cat_toilet_ionizer_timer:
name: "Кошачий лоток. Ионизатор. Таймер"
duration: "00:30:00"
icon: mdi:creation
- sensor:
- name: 'Cat toilet: Ionizer. Remaining Time'
unique_id: cat toilet ionizer remaining time
state: >
{% set f = state_attr('timer.cat_toilet_ionizer_timer', 'finishes_at') %}
{{ '00:00:00' if f == None else (as_datetime(f) - now()).total_seconds() | timestamp_custom('%H:%M:%S', false) }}
icon: mdi:timer
3D модель
Я спроектировал защитный съемный бортик, так как его у меня в комплекте не было, а покупать за безумные деньги у производителя я не захотел. В итоге спроектиорвал и распечатал защитный съемный бортик. Защитный съемный бортик блокирует попадание наполнителя внутрь бака, т.е когда кошки закапывают наполнитель, то наполнитель без бортика попадает под бак. Можно купить у производителя съемный бортик
Скачать модель можно здесь
Защитный съемный бортик для автоматического лотка туалета Tonepie
![](https://private-user-images.githubusercontent.com/64090632/275326831-b82b7e5f-060f-4c00-8e14-f9b11a177923.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUzMjY4MzEtYjgyYjdlNWYtMDYwZi00YzAwLThlMTQtZjliMTFhMTc3OTIzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQwOGMwYTdjZWFiYWIxZmMxMmM1MTQwZDhiYjZlMTA1MDQ3OWNhYjhlYTE5Y2I5ZGUxMjg5ZDEzMWE3ZGQwMzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.bRCvalGmdAfLpi7izmKJZIW1WEwGrFzfnF66jMY9UNI)
Защитный съемный бортик распечатанный на 3D принтере
![](https://private-user-images.githubusercontent.com/64090632/275326904-f95de27e-227f-41ed-8495-18f336531e05.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUzMjY5MDQtZjk1ZGUyN2UtMjI3Zi00MWVkLTg0OTUtMThmMzM2NTMxZTA1LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIzYjJkODZmYTA2ZTFjMjQ5N2Q0Y2EyOTg1ODNkNDM5OTBmNmM3ZDU0OTFhMjJlNmRmNWE5ZGQ4ODAzOTExZDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.86a3Z-rMVd-ors187o0O1StRJDXQxK8SL0HDv4KHtnU)
![](https://private-user-images.githubusercontent.com/64090632/275326932-f2202e57-0271-498c-9660-602d294095da.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTM2Nzg2MjQsIm5iZiI6MTcxMzY3ODMyNCwicGF0aCI6Ii82NDA5MDYzMi8yNzUzMjY5MzItZjIyMDJlNTctMDI3MS00OThjLTk2NjAtNjAyZDI5NDA5NWRhLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDIxVDA1NDUyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVlYTc2OTBlOTExNDI0MDVjZTMzMDAxMTBmNDUwOThjNWQyYTg0ZGRkOTg0NzZiMGE3NTI0YjIxZDlmODY5ZWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.AIez2aVrb4MRfpoeuE4SsRZKYrZrbceh6qi7M9DL7yc)