sorry i can just put 1 item per post… also I can reply just 3 times lol
Thanks for the info. If I saw correctly from the photo, I see the following
XL1509E-5.0, DC-DC converter Buck 5V 3A 150kHz [ESOP-8] (=XL1509-5.0E1)
SDC9150 351DDD
AMS1117 T33F82LC
Hi guys, I just bought a tonepie-like cat litter box but it behaves very strange. If it has no litter, it performs a bigger rotation than when it has litter in it. Also, it does not levels the litter after the cleaning procedure but when I press the litter levelling button, the litter does levels correctly. Tried to change every setting I could, any ideas? Thank you in advance
Hey Divan, nice pics! Ijust received mine yesterday and during some first tests I found the ionizing function very very noisy! Something like a motor spinning touching the plastic enclousure…weird cause I tought the Ionizer was just an electronic static system, but with your teardown pics now I see there is a turbine inside! My doubt is that my problem could be that I tested it on a non-perfectly flat surface, I have to test it placed directly on the floor.
Just want to share my project/automation that I have made (with chatgpt support) to register who used the litter based on the weight different (I have two cats, Anacleto and Athena), increase a counter to alert me when I have to change litter/bag.
The litter is itegrated via Local Tuya integration:
I needed to add a custom integration for permanent variables:
GitHub - enkama/hass-variables: Home Assistant variables component.
Basically the automation listen to a certain state of litter sensors, and in a cicle registers the maximum weight from the litter sensor during the presence on a permanent variable.
Based on the weight registered it stores the data (weight, lenght of visit and cat name) on permanent variables (if above 5kg it’s Anacleto, if below Athena, else “Qualcuno” aka “Someone”), increment the usage counter, and send a push notification.
When the usages are 15en or more (above 14en) another notification is sent to alert that the bag needs to be changed.
I hope I made myself clear.
Here is the code of the automation:
alias: "Notifica: Visita Lettiera"
triggers:
- entity_id: binary_sensor.lettiera_occupancy
from: "on"
to: "off"
trigger: state
id: detected-to-clear
conditions:
- condition: numeric_state
entity_id: sensor.lettiera_cat_weight
above: 0
- condition: state
entity_id: switch.lettiera_smart_clean
state: "off"
actions:
- choose:
- conditions:
- condition: trigger
id:
- detected-to-clear
sequence:
- action: variable.update_sensor
target:
entity_id:
- sensor.variable_max_durata_gatto
- sensor.variable_max_peso_gatto
data:
value: "0"
- action: variable.update_sensor
data:
value: Qualcuno
target:
entity_id: sensor.variable_nome_gatto
- repeat:
until:
- condition: state
entity_id: binary_sensor.lettiera_occupancy
state: "off"
for:
hours: 0
minutes: 2
seconds: 30
sequence:
- delay: "00:00:05"
- if:
- condition: template
value_template: >-
{{ states('sensor.lettiera_cat_weight') | float >
states('sensor.variable_max_peso_gatto') | float and
states('sensor.lettiera_cat_weight') | float > 2 }}
then:
- action: variable.update_sensor
target:
entity_id: sensor.variable_max_peso_gatto
data:
replace_attributes: false
value: |
{{ states('sensor.lettiera_cat_weight') | float }}
- action: variable.update_sensor
target:
entity_id: sensor.variable_max_durata_gatto
data:
replace_attributes: false
value: |
{{ states('sensor.lettiera_time_spent_today') | int }}
- action: variable.update_sensor
target:
entity_id: sensor.variable_nome_gatto
data:
replace_attributes: false
value: >
{% if states('sensor.variable_max_peso_gatto') | float
>= 5 %}
Anacleto
{% elif states('sensor.variable_max_peso_gatto') |
float <= 5 %}
Athena
{% else %}
Qualcuno
{% endif %}
- if:
- condition: numeric_state
entity_id: sensor.variable_max_peso_gatto
above: 2
- condition: numeric_state
entity_id: sensor.variable_max_durata_gatto
above: 0
then:
- choose:
- conditions:
- condition: template
value_template: "{{ states('sensor.variable_nome_gatto') == 'Anacleto' }}"
sequence:
- action: variable.update_sensor
data:
value: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
attributes:
peso: "{{ states('sensor.variable_max_peso_gatto') | float }} kg"
durata: "{{ states('sensor.variable_max_durata_gatto') | int }} sec"
target:
entity_id: sensor.statistiche_lettiera_anacleto
- conditions:
- condition: template
value_template: "{{ states('sensor.variable_nome_gatto') == 'Athena' }}"
sequence:
- action: variable.update_sensor
data:
value: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
attributes:
peso: "{{ states('sensor.variable_max_peso_gatto') | float }} kg"
durata: "{{ states('sensor.variable_max_durata_gatto') | int }} sec"
target:
entity_id: sensor.statistiche_lettiera_athena
- conditions:
- condition: template
value_template: "{{ states('sensor.variable_nome_gatto') == 'Qualcuno' }}"
sequence:
- action: variable.update_sensor
data:
value: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
attributes:
peso: "{{ states('sensor.variable_max_peso_gatto') | float }} kg"
durata: "{{ states('sensor.variable_max_durata_gatto') | int }} sec"
target:
entity_id: sensor.statistiche_lettiera_qualcuno
- if:
- condition: numeric_state
entity_id: sensor.variable_max_peso_gatto
above: 2
then:
- data:
title: "{{ states('sensor.variable_nome_gatto') }} è stata in lettiera"
message: >
per {{ states('sensor.variable_max_durata_gatto') }} secondi, peso
{{ states('sensor.variable_max_peso_gatto') }} kg. {% if
is_state('switch.lettiera_auto_clean', 'on') %}A breve partirà la
pulizia automatica. {% else %}Pulizia Automatica disattivata,
provvedere manualmente all'avvio. {% endif %}
data:
url: /dashboard-cats/litter
action: notify.family_mobile_app
- action: counter.increment
metadata: {}
data: {}
target:
entity_id: counter.utilizzi_lettiera
- if:
- condition: numeric_state
entity_id: counter.utilizzi_lettiera
above: 14
then:
- action: notify.family_mobile_app
metadata: {}
data:
title: ATTENZIONE
message: La lettiera ha il sacco pieno, sostituiscilo il prima possibile
data:
url: /dashboard-cats/litter
mode: single
im hoping someone can help me. i have this litter box purchased in feb and now its not doing a cycle says abnormal position. i have cleaned out, washed and wiped i dont know what is wrong. no clue where senors are any help would be wonderful im losing my mind
Try the following steps. If none of the steps work, the problem is likely related to the sensors or electronics. In this case, I recommend contacting a service center or requesting a refund if the device is still under warranty.
Step-by-step instructions:
- Unplug the tray from the power supply. Make sure that the device is completely de-energized.
- Remove the tank and set the mat’s position horizontally.
- Fill the tank with the filling material.
- Plug the tray back into the power supply. The device will automatically start the calibration process: the tank will start rotating and will stop once the process is complete. This indicates that the tray is ready for use.
Every time the filler or bag is replaced:
- Be sure to unplug the tray before any manipulation.
- Only fill the filler when the device is turned off.
- Plug the tray into the outlet only after you have installed the tank in place.
This is necessary for proper calibration: when the device is turned on, it weighs the filler and adjusts the sensors.
Just for info, I did the DivanX10 modification, changed the Tuya WBR3 device to an ESP32-C3 supermini Plus(V2). This does work … but … there is no really good way to find what Datapoints are used in my version of the Tonepie Ti Pro 25. It has the same layout of the front display as the older versions but… RX/TX is 115200 not 9600 and some DP’s work but there a few other. Impossible to find a good reference so it is a work of trial and error.
The internals seem the same but the ionizer is completely different = cheaper and up to now I did not find how to enable it.
Even a good user manual is impossible to find for my version. Frustrating at least.
If there is some interest in my modification or some pictures… just give a yell!
In the mean time I did work on this Tonepie cat litter project for some time and now my moggy is very happy.
I will for now just include my esphome .yaml file for those interested. Have a look. The datapoints of my device are different from the initial Divanx you also find here. One of the main differences is the TX/RX serial speed, io. 9600 I had to use 115200!
I used some AI especially for finding references in the Tuya mess that are often only available in chinese and because I fluently speak at least 4 languages chinese is not one of them. The Tonepie MCU also seems to go into sleep mode if nothing happens, this gave me some head-scratching… but seems normal, as soon as the moggy enters it awakens. I used an ESP32-C3 supermini plus(V2) that has a multicoloured LED that I exposed to the outside of the litterbox. It was a great help in debugging as accessing the internals of the box is quite difficult.
So now this “Tuya” device became a completely opensource ESPHome thingy!
I will publish the complete project later on Codeberg (I’m living in EU…) in English and Dutch… so even Home-assistant upper tsar “Paulus Schoutsen” can read it… ![]()
![]()
![]()
![]()
I just have to find some time for this now…
And yes, it took me some time, but I did this for my cat(s)… AND myself not having to clean catshit every day! ![]()
Another thing, I had to use ESPHome 2025.7 for building as the latest Builder has problems with “tuya”…
I do not know if the latest Tonepie catshit boxes are still compatible. Don’t blame me if not.
Enjoy & have fun
![]()
Jacques.
I will post the Esphome yaml asap because it is too large to put it here.
Keep looking here for news.










