Thanks! I forgot to mention i don’t have it yet, but nice to know i can add it here once i get one! Didn’t find any support for it before you updated the app, thanks!
Hi!
That’s fantastic news – thank you so much for the update and for finding a way to make it work! I’m downloading the beta version right now and will be testing it thoroughly over the next few days. I’ll let you know how it goes.
Thanks again for your effort!
Hi!
I’ve been testing the new beta version (3.4.96). I noticed that while the telemetry data (like food weight) is coming through correctly, the FoodLevel status doesn’t seem to update automatically when the food level crosses the configured threshold.
For example, I set the threshold to 10g. My feeder has 47g, but the status is still stuck on ‘Low’. It seems the status logic needs a manual trigger or a more frequent refresh. Is there any way to make this update more responsive?
Thanks for your help!"
Hi,
thanks for testing and reporting this. The current FoodLevel value is not calculated from the configured gram threshold; it comes from a separate device status indicating the food level in the storage container, while the 47 g value represents food in the bowl. I’ll rename it to Container food level to make this distinction clearer.
Also please when reporting, best is to send diag from the app with details provided together with the logs.
Hi!
I’m still trying to map out which of the available sensors in your app corresponds to the actual weight of the food in the bowl. As we discussed, I’m seeing some confusion with the status updates.
To help clarify and debug this, I’ve attached two screenshots showing the sensor options I have, along with the diagnostic log from the app.
Could you please point out which of the following sensors should be used to monitor the actual weight of the food in the bowl?
- Foodlevel
- Food Out Status
- Heap Status
- Feeder Status
- Food level in bowl
- Food stuck status
Additionally, even though I refilled the storage container, the app (and the Xiaomi Home app as well) still shows it as ‘Empty/Low’. I suspect there might be a physical sensor issue with the device itself, but since I’m seeing the correct data for the bowl weight (32g), I want to make sure I’m looking at the right sensor for that.
Thanks for your guidance!"
Log
11f39bd5-2d0f-4cb0-9c82-94902de749b1
Could you confirm if ‘Low food intake threshold’ is strictly for monitoring the eating habits (intake), or does it also trigger the ‘Low food’ warning for the container?
Hi!
Quick update: after restarting the device, the container status (Foodlevel) is now correctly showing ‘Normal’.
However, I’m still struggling with the ‘Food level in bowl’ status in Homey. The device is currently reporting 32g in the bowl (which I can see in the ‘Device data’), but the ‘Food level in bowl’ sensor in Homey still shows ‘Empty’.
Could you please clarify:
- Is ‘Food level in bowl’ intended to be a sensor that displays the current weight in grams, or is it a status category (Empty/Low/Normal) that is calculated based on a different threshold?
- If it is meant to be a status, how can I configure the threshold for it so that 32g is considered ‘Normal’ instead of ‘Empty’?
I have attached the diagnostic report and the current logs so you can see why the ‘Empty’ status is persisting despite the 32g reading.
Thanks
that could be a limitation of this local integration and of the data actually provided by the feeder.
Your diagnostic report was submitted from version v3.4.96. Please always install the latest test version before submitting a report, because newer versions contain additional diagnostics and fixes that are absent from this log.
To your extensive list of questions:
-
None of the listed sensors represents the current bowl weight in grams:
- Container food level — previously called Foodlevel. This is the device-reported Normal/Low status for the food storage container.
- Food Out Status — indicates an abnormal food-dispensing condition.
- Heap Status — indicates detected food accumulation.
- Feeder Status — Idle, Feeding, or Fault.
- Food level in bowl — a device-reported category: Empty, Low, or Normal.
- Food stuck status — indicates that food may be stuck in the dispensing mechanism.
-
The
32 gshown in your log is not the current amount of food in the bowl. It is the locally calculated Food consumed today value. The log shows it increasing through detected consumption events, for example from 32 g to 34 g, 36 g, 38 g, and 40 g. -
Low food intake threshold is related only to monitoring eating behaviour. It does not control the Container food level warning and does not define the Empty/Low/Normal thresholds for the bowl.
-
Food level in bowl is not calculated by Homey from the measured grams. It is a separate status reported directly by the feeder. The device does not expose a configurable threshold for this status through the local protocol, so Homey currently cannot make 32 g count as Normal by changing a setting.
-
Because the Xiaomi Home app also showed the storage container as Empty/Low, and restarting the feeder corrected it, that particular problem originated from the feeder or its internal sensor/cache rather than Homey.
The v3.4.96 log does not include the raw values needed to investigate the bowl status; it mostly contains Pet Fountain diagnostics and feeder consumption updates. The latest test version now logs the raw container status, bowl-weight sample, bowl status, intake threshold, feeding status, and failed MIoT request batches.
Please update to the latest test version, reproduce the discrepancy, and submit a new diagnostic report while the incorrect status is still visible.
But again let me re-iterate, this is what it is, I will be not able to get more data from the feeder and my cloud based tests shows that the additional insights are probably not worth of integrating this into Cloud as well (yet).
@Felho , thank you—the new v3.5.0 log provided the information we needed. It confirms that the feeder reports the actual bowl weight correctly: it increased from 23 g to 33 g after dispensing. However, the separate Empty/Low/Normal status supplied by the device remained Empty, so that status is unreliable over the local protocol.
I have adjusted the integration to use the actual bowl weight instead. The next version will expose the weight in grams and calculate the bowl status locally using a new Bowl low threshold (g) setting. With the default threshold of 10 g, both 23 g and 33 g will be shown as Normal.
The existing Low food intake threshold remains unrelated; it is intended for monitoring eating behaviour, not the amount currently in the bowl.
Watch for next test version then.
Hi!
Thank you for helping and fix this. I would like donate for you. Have you revolut account?
…don’t thanks until it works ![]()
I have changed little bit more now, please test how this would work for you.
Version 3.5.1 — Additional Xiaomi Smart Pet Feeder 2 improvements
Donation options are available on the app page, you would be the first in last 6 months then ![]()
I do have also revolut, @bretis6ws - but not using it so often.
Hi!
That’s excellent news, everything is working perfectly now! The data sync is spot on, and the sensor statuses are updating as they should. Thank you so much for putting in the effort to make this happen – it’s really appreciated!
Since I don’t use PayPal, I’d love to send you a donation via Revolut (@bretis6ws) instead, if that works for you. I’m planning to send $30 as a token of my appreciation for your hard work.
Keep up the great work, and thanks again!
Thought I’d give an update on my fan. There has been quite a few updates over the last few days and the first one that landed after I wrote here seemed to fix my problems. The next one made it wonky again, and now it just tells me there’s no contact with the fan at all.
As written in the first post…
I tried to give you that in [APP][Pro] Xiaomi Mi Home App - #2061 by Tiwas, but please tell me what more you need.
The name in the app is “Xiaomi Smart Standing Air Circulation Fan (xiaomi.fan.p76)” (which is visible from the other screenshots. It was sold as “Xiaomi Smart Standing Air Circulation Fan - BPLDS11DM” (Xiaomi Smart Standing Fan 2). It’s an EU model.
Report ID: b3bde4e3-eeca-4061-bb89-aeb224608ef2
Please tell me if I can provide anything else. Should I retry all the different fan models in the app again? The one I’m using now was the only one that intermittently worked (until it stopped).
I see in the log handshake errors , not something I can really influence myself, if the initial test during pairing is okay..
Can you try removing it and pairing again?
Note :
For Xiaomi xiaomi.fan. models, use the Advanced Xiaomi Smart Fan MIoT driver for new pairings.*
Recreating the fan seems to work fine. I’ve also made a reservation for the ip in the router, in case that was part of the problem. It didn’t seem to have a DHCP lease, so it going from connected to disconnected could have been an IP change.
The only things I’m (kind of) missing are vertical and horizontal controls, but that’s a minor issue. The most importan is to be able to turn it on/off and set fan speed.
So again the same applies… ![]()
Hi Sharkys,
First of all, thank you for continuing to maintain the Xiaomi Mi Home app. I understand that you took over maintaining the project, and I really appreciate that.
I have been troubleshooting support for my Xiaomi Smart Standing Air Circulation Fan, because although the fan can be added to Homey, several functions do not work correctly.
To determine whether the issue was with the fan itself or the Homey implementation, I tested the device directly using python-miio and the local MIoT protocol.
After testing every function on the physical device, I believe I now have a complete and verified MIoT mapping for this model.
Device Information
- Product: Xiaomi Smart Standing Air Circulation Fan
- Model:
xiaomi.fan.p76 - Hardware:
BL602 - Firmware:
1.0.5
Homey device used:
- Advanced Mi Smart Standing Fan MIoT (WiFi)
Current issue in Homey
The fan can be added successfully in Homey, but only the power control works.
I can turn the fan on and off, but the other functions do not work correctly.
For example:
- Fan speed cannot be controlled.
- Homey does not read the current fan speed.
- The speed is shown as
0, even while the fan is running. - Changing a value often causes Homey to show
busyoruser action timeout. - The selected value then returns to the previous value.
- Wind mode does not work.
- Natural wind level does not work.
- Horizontal oscillation does not work.
- Vertical oscillation does not work.
- Oscillation angles do not work.
- LED and buzzer controls do not work.
- The directional movement buttons are not available.
The only capability that currently works correctly in Homey is:
- Power on/off
However, all the other functions work correctly when communicating directly with the device through the local MIoT protocol.
Complete Property Mapping
| Function | SIID | PIID | Type | Values |
|---|---|---|---|---|
| Power | 2 | 1 | bool | true / false |
| Fault status | 2 | 2 | int | 0 = no fault |
| Straight / Normal Wind mode | 2 | 3 | int | 0 = Straight / Normal, 1 = Natural |
| Natural Wind level | 2 | 4 | int | 0–3 (levels 1–4 in Xiaomi Home) |
| Fan speed | 2 | 5 | int | 1–100 |
| Horizontal oscillation | 2 | 6 | bool | true / false |
| Horizontal oscillation angle | 2 | 7 | int | 30 / 60 / 90 / 120 |
| Vertical oscillation | 2 | 8 | bool | true / false |
| Vertical oscillation angle | 2 | 9 | int | 30 / 60 / 90 / 100 |
| LED display | 5 | 1 | bool | true / false |
| Buzzer | 7 | 1 | bool | true / false |
Complete Action Mapping
The directional buttons inside Xiaomi Home are not properties.
They are MIoT Actions.
| Function | SIID | AIID |
|---|---|---|
| Move Left | 2 | 4 |
| Move Right | 2 | 5 |
| Move Up | 2 | 6 |
| Move Down | 2 | 7 |
Each action moves the fan head one small step, exactly like pressing the arrows in Xiaomi Home.
Example Commands
Below are the commands I used for testing.
Replace:
DEVICE_IPDEVICE_TOKEN
with your own values.
Power
Read
get_property_by 2 1
Turn on
set_property_by 2 1 true bool
Turn off
set_property_by 2 1 false bool
Straight / Normal Wind Mode
Read
get_property_by 2 3
Straight / Normal
set_property_by 2 3 0 int
Natural
set_property_by 2 3 1 int
Natural Wind Level
Read
get_property_by 2 4
Levels
set_property_by 2 4 0 int
set_property_by 2 4 1 int
set_property_by 2 4 2 int
set_property_by 2 4 3 int
Fan Speed
Read
get_property_by 2 5
Examples
set_property_by 2 5 1 int
set_property_by 2 5 25 int
set_property_by 2 5 50 int
set_property_by 2 5 100 int
Horizontal Oscillation
Read
get_property_by 2 6
Enable
set_property_by 2 6 true bool
Disable
set_property_by 2 6 false bool
Horizontal Oscillation Angle
Read
get_property_by 2 7
Available values
30
60
90
120
Set
set_property_by 2 7 30 int
set_property_by 2 7 60 int
set_property_by 2 7 90 int
set_property_by 2 7 120 int
Vertical Oscillation
Read
get_property_by 2 8
Enable
set_property_by 2 8 true bool
Disable
set_property_by 2 8 false bool
Vertical Oscillation Angle
Read
get_property_by 2 9
Available values
30
60
90
100
Set
set_property_by 2 9 30 int
set_property_by 2 9 60 int
set_property_by 2 9 90 int
set_property_by 2 9 100 int
LED
Read
get_property_by 5 1
Enable
set_property_by 5 1 true bool
Disable
set_property_by 5 1 false bool
Buzzer
Read
get_property_by 7 1
Enable
set_property_by 7 1 true bool
Disable
set_property_by 7 1 false bool
Direction Buttons
Move Left
call_action_by 2 4
Move Right
call_action_by 2 5
Move Up
call_action_by 2 6
Move Down
call_action_by 2 7
Swing in cycles
The “Swing in cycles” function is not a separate property or action.
It simply enables both oscillation directions simultaneously.
set_property_by 2 6 true bool
set_property_by 2 8 true bool
To disable it:
set_property_by 2 6 false bool
set_property_by 2 8 false bool
Conclusion
I have tested every property and action above directly on the physical device.
All functions work correctly through the local MIoT protocol.
In Homey, however, only power on/off currently works. This suggests that the fan itself is working correctly, while the remaining issue is most likely related to the current Homey model mapping, capability mapping, data types, or property polling.
I would be happy to test a beta version or help verify any future changes.
Hopefully this mapping can save you some time and make it easier to add full support for the xiaomi.fan.p76.
Thanks again for continuing to maintain the project.
Best regards,
Lukas







