Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smart pet food feeder 2 support #661

Open
Olived-fr opened this issue Feb 2, 2025 · 15 comments
Open

Smart pet food feeder 2 support #661

Olived-fr opened this issue Feb 2, 2025 · 15 comments
Labels
new device Request new device support

Comments

@Olived-fr
Copy link

Device model
xiaomi.feeder.iv2001

Device name
Xiaomi Smart Pet Food Feeder 2

Does the device require a MiCloud connection?
Do not know

Anything special about the device?
The device is in the Miot spec however nothing is working in HomeKit. No service are added with the main accessory. When manually adding properties, values shown are always 0/empty.

@Olived-fr Olived-fr added the new device Request new device support label Feb 2, 2025
@merdok
Copy link
Owner

merdok commented Feb 3, 2025

What does the debug log say?

@Olived-fr
Copy link
Author

I have those logs:

[1/30/2025, 5:38:26 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Device found! Setting up miot device from local connection!
[1/30/2025, 5:38:26 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Connected to device: xiaomi.feeder.iv2001
[1/30/2025, 5:38:26 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Doing initial property fetch.
[1/30/2025, 5:38:26 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Starting property polling.
2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Using module class for device type PetFeeder, indentified by miot spec! Not all features might work!
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Initializing device services
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Device services: [
  "pet-feeder",
  "physical-controls-locked",
  "battery",
  "desiccant",
  "pet-feeder-costom"
]
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Initializing device properties
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Device properties: [
  "pet-feeder:fault",
  "pet-feeder:pet-food-left-level",
  "pet-feeder:target-feeding-measure",
  "pet-feeder:feeding-measure",
  "pet-feeder:status",
  "pet-feeder:status11",
  "pet-feeder:status13",
  "pet-feeder:status15",
  "pet-feeder:feeding-type",
  "pet-feeder:current-time",
  "pet-feeder:eaten-food-measure",
  "pet-feeder:eaten-food-measure20",
  "pet-feeder:current-time21",
  "pet-feeder:eaten-food-measure22",
  "pet-feeder:eaten-food-measure23",
  "pet-feeder:current-time24",
  "pet-feeder:current-time25",
  "pet-feeder:status26",
  "pet-feeder:current-time27",
  "pet-feeder:status28",
  "pet-feeder:status29",
  "pet-feeder:status31",
  "pet-feeder:status32",
  "physical-controls-locked:physical-controls-locked",
  "physical-controls-locked:mode",
  "battery:battery-level",
  "desiccant:desiccant-left-level",
  "desiccant:desiccant-left-time",
  "pet-feeder-costom:feeder-schedule",
  "pet-feeder-costom:add-meal-state",
  "pet-feeder-costom:plan-process-display",
  "pet-feeder-costom:food-intake-rate",
  "pet-feeder-costom:food-intake-state",
  "pet-feeder-costom:max-schcdule-num",
  "pet-feeder-costom:schedule-state",
  "pet-feeder-costom:status",
  "pet-feeder-costom:add-meal-cycle",
  "pet-feeder-costom:food-out-progress",
  "pet-feeder-costom:compensate-switch",
  "pet-feeder-costom:prevent-accumulation",
  "pet-feeder-costom:schedule-progress",
  "pet-feeder-costom:add-meal-triggertime",
  "pet-feeder-costom:device-timezone",
  "pet-feeder-costom:set-screen-display"
]
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Initializing device actions
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Device actions: [
  "pet-feeder:pet-food-out",
  "pet-feeder:weigh-manual-calibrate",
  "desiccant:reset-desiccant-life",
  "pet-feeder-costom:food-intake-setting",
  "pet-feeder-costom:feeder-schedule-upd",
  "pet-feeder-costom:add-meal-setting",
  "pet-feeder-costom:schedule-display-set",
  "pet-feeder-costom:food-intake-low-set",
  "pet-feeder-costom:add-meak-state-set"
]
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Successfully created a PetFeeder device! It is a Unknown pet feeder device.
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Initializing accessory!
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Accessory successfully initialized!
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Registering 1 accessories!
[2/1/2025, 7:39:40 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Everything looks good! Initiating property polling!

@merdok
Copy link
Owner

merdok commented Feb 4, 2025

Did you try to set the forceMiCloud property to true? It might be that your device is micloud only.

@Olived-fr
Copy link
Author

Yes I tried both forced and not and the result is the same

@merdok
Copy link
Owner

merdok commented Feb 5, 2025

Then you need to post a deep debug log so that I can see what the issue is.

@Olived-fr
Copy link
Author

Sure, here are some of the logs I could find. Let me you if you're looking for something specific.


[2/6/2025, 8:37:15 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] (Protocol) 192.168.3.52 -> Message: {"id":1646,"result":[{"did":"644053579","siid":2,"piid":1,"code":0,"value":0},{"did":"644053579","siid":3,"piid":1,"code":0,"value":false},{"did":"644053579","siid":4,"piid":1,"code":0,"value":false},{"did":"644053579","siid":2,"piid":18,"code":0,"value":0}],"exe_time":42}
[2/6/2025, 8:37:15 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Successfully updated property chunk! RAW: [{"did":"644053579","siid":2,"piid":1,"code":0,"value":0},{"did":"644053579","siid":3,"piid":1,"code":0,"value":false},{"did":"644053579","siid":4,"piid":1,"code":0,"value":false},{"did":"644053579","siid":2,"piid":18,"code":0,"value":0}]
[2/6/2025, 8:37:15 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Device properties updated: 
[
  "pet-feeder:fault: 0",
  "pet-feeder:pet-food-left-level: 0 | (not synced)",
  "pet-feeder:target-feeding-measure: 0 | (not synced)",
  "pet-feeder:status: 0 | (not synced)",
  "pet-feeder:status11: 0 | (not synced)",
  "pet-feeder:status13: 0 | (not synced)",
  "pet-feeder:status15: 0 | (not synced)",
  "pet-feeder:eaten-food-measure: 0",
  "pet-feeder:eaten-food-measure20: 0 | (not synced)",
  "pet-feeder:eaten-food-measure22: 0 | (not synced)",
  "pet-feeder:eaten-food-measure23: 0 | (not synced)",
  "pet-feeder:status26: 0 | (not synced)",
  "pet-feeder:status28: 0 | (not synced)",
  "pet-feeder:status29: 0 | (not synced)",
  "pet-feeder:status31: 0 | (not synced)",
  "pet-feeder:status32: 0 | (not synced)",
  "physical-controls-locked:physical-controls-locked: false",
  "physical-controls-locked:mode: 0 | (not synced)",
  "battery:battery-level: false",
  "desiccant:desiccant-left-level: 0 | (not synced)",
  "desiccant:desiccant-left-time: 0 | (not synced)",
  "pet-feeder-costom:feeder-schedule:  | (not synced)",
  "pet-feeder-costom:add-meal-state: false | (not synced)",
  "pet-feeder-costom:plan-process-display: false | (not synced)",
  "pet-feeder-costom:food-intake-rate: 0 | (not synced)",
  "pet-feeder-costom:food-intake-state: false | (not synced)",
  "pet-feeder-costom:max-schcdule-num: 0 | (not synced)",
  "pet-feeder-costom:schedule-state: 0 | (not synced)",
  "pet-feeder-costom:add-meal-cycle: 0 | (not synced)",
  "pet-feeder-costom:food-out-progress: 0 | (not synced)",
  "pet-feeder-costom:compensate-switch: 0 | (not synced)",
  "pet-feeder-costom:prevent-accumulation: 0 | (not synced)",
  "pet-feeder-costom:schedule-progress: 0 | (not synced)",
  "pet-feeder-costom:add-meal-triggertime: 0 | (not synced)",
  "pet-feeder-costom:device-timezone: 0 | (not synced)",
  "pet-feeder-costom:set-screen-display: 0 | (not synced)"
]

[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Preparing property poll!
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Chunks:  [
 [
  "pet-feeder:fault",
  "physical-controls-locked:physical-controls-locked",
  "battery:battery-level",
  "pet-feeder:eaten-food-measure"
 ]
]
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] (Protocol) Call 192.168.3.52: get_properties - [{"did":"644053579","siid":2,"piid":1},{"did":"644053579","siid":3,"piid":1},{"did":"644053579","siid":4,"piid":1},{"did":"644053579","siid":2,"piid":18}] - {}
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] (Protocol) Start handshake 192.168.3.52
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] (Protocol) 192.168.3.52 <- (2) {"method":"get_properties","params":[{"did":"644053579","siid":2,"piid":1},{"did":"644053579","siid":3,"piid":1},{"did":"644053579","siid":4,"piid":1},{"did":"644053579","siid":2,"piid":18}],"id":1647}
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] (Protocol) 192.168.3.52 <- !1������&czK��҅�y��P �W8��/E���
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] (Protocol) 192.168.3.52 -> Data: {"id":1647,"result":[{"did":"644053579","siid":2,"piid":1,"code":0,"value":0},{"did":"644053579","siid":3,"piid":1,"code":0,"value":false},{"did":"644053579","siid":4,"piid":1,"code":0,"value":false},{"did":"644053579","siid":2,"piid":18,"code":0,"value":0}],"exe_time":40}
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] (Protocol) 192.168.3.52 -> Message: {"id":1647,"result":[{"did":"644053579","siid":2,"piid":1,"code":0,"value":0},{"did":"644053579","siid":3,"piid":1,"code":0,"value":false},{"did":"644053579","siid":4,"piid":1,"code":0,"value":false},{"did":"644053579","siid":2,"piid":18,"code":0,"value":0}],"exe_time":40}
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Successfully updated property chunk! RAW: [{"did":"644053579","siid":2,"piid":1,"code":0,"value":0},{"did":"644053579","siid":3,"piid":1,"code":0,"value":false},{"did":"644053579","siid":4,"piid":1,"code":0,"value":false},{"did":"644053579","siid":2,"piid":18,"code":0,"value":0}]
[2/6/2025, 8:37:25 PM] [miot] [Xiaomi Smart Pet Food Feeder 2] Device properties updated: 
[
  "pet-feeder:fault: 0",
  "pet-feeder:pet-food-left-level: 0 | (not synced)",
  "pet-feeder:target-feeding-measure: 0 | (not synced)",
  "pet-feeder:status: 0 | (not synced)",
  "pet-feeder:status11: 0 | (not synced)",
  "pet-feeder:status13: 0 | (not synced)",
  "pet-feeder:status15: 0 | (not synced)",
  "pet-feeder:eaten-food-measure: 0",
  "pet-feeder:eaten-food-measure20: 0 | (not synced)",
  "pet-feeder:eaten-food-measure22: 0 | (not synced)",
  "pet-feeder:eaten-food-measure23: 0 | (not synced)",
  "pet-feeder:status26: 0 | (not synced)",
  "pet-feeder:status28: 0 | (not synced)",
  "pet-feeder:status29: 0 | (not synced)",
  "pet-feeder:status31: 0 | (not synced)",
  "pet-feeder:status32: 0 | (not synced)",
  "physical-controls-locked:physical-controls-locked: false",
  "physical-controls-locked:mode: 0 | (not synced)",
  "battery:battery-level: false",
  "desiccant:desiccant-left-level: 0 | (not synced)",
  "desiccant:desiccant-left-time: 0 | (not synced)",
  "pet-feeder-costom:feeder-schedule:  | (not synced)",
  "pet-feeder-costom:add-meal-state: false | (not synced)",
  "pet-feeder-costom:plan-process-display: false | (not synced)",
  "pet-feeder-costom:food-intake-rate: 0 | (not synced)",
  "pet-feeder-costom:food-intake-state: false | (not synced)",
  "pet-feeder-costom:max-schcdule-num: 0 | (not synced)",
  "pet-feeder-costom:schedule-state: 0 | (not synced)",
  "pet-feeder-costom:add-meal-cycle: 0 | (not synced)",
  "pet-feeder-costom:food-out-progress: 0 | (not synced)",
  "pet-feeder-costom:compensate-switch: 0 | (not synced)",
  "pet-feeder-costom:prevent-accumulation: 0 | (not synced)",
  "pet-feeder-costom:schedule-progress: 0 | (not synced)",
  "pet-feeder-costom:add-meal-triggertime: 0 | (not synced)",
  "pet-feeder-costom:device-timezone: 0 | (not synced)",
  "pet-feeder-costom:set-screen-display: 0 | (not synced)"
]

@merdok
Copy link
Owner

merdok commented Feb 7, 2025

Thanks! That looks strange, can you also please post your config?

@Olived-fr
Copy link
Author

Olived-fr commented Feb 7, 2025

Sure here is my config (I removed the token):

{
  "devices":[
      {
         "name":"Xiaomi Smart Pet Food Feeder 2",
         "ip":"192.168.3.52",
         "token":"xxx",
         "deviceId":"644053579",
         "model":"xiaomi.feeder.iv2001",
         "pollingInterval":10,
         "deepDebugLog":true,
         "silentLog":false,
         "deviceEnabled":true,
         "customAccessory":false,
         "buzzerControl":false,
         "ledControl":false,
         "childLockControl":false,
         "modeControl":false,
         "propertyMonitor":[
            {
               "property":"2.8"
            },
            {
               "property":"2.18"
            }
         ],
         "foodAmount":1
      }
   ],
   "platform":"miot"
}

@merdok
Copy link
Owner

merdok commented Feb 7, 2025

Thanks, all actually looks good. I am not quite sure why your pet feeder does not work.
You should create some action buttons s and map them to all the actions in the spec and then check them out one by one to see if any of those work.

@Olived-fr
Copy link
Author

Ok so some actions seem to work however properties are not working at all (and the feeder specific setting isn't working also)

@merdok
Copy link
Owner

merdok commented Feb 8, 2025

ok, that means a dedicated device implementation would be needed...

@Olived-fr
Copy link
Author

Oh ok, how does it usually go? Would you consider doing it?

@merdok
Copy link
Owner

merdok commented Feb 8, 2025

I do not have the device itself so it would be tricky for me. There is a device class generator in the homebridge ui, you would need to use that to generate a generic class and then provide overrides in the overrides section for certain properties similiar as you see it in the vacuum device classes here https://github.com/merdok/homebridge-miot/tree/main/lib/modules/robotcleaner/devices
You can do the change local and instantly check whether it fixes your issues, after a Pull Request would be welcome with the new class.

@Olived-fr
Copy link
Author

Ok I'll try to take a look at it.
For the overrides, how do I know what values to put?

@merdok
Copy link
Owner

merdok commented Feb 10, 2025

You have to check the miot spec for your device for example here https://www.merdok.org/miotspec/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new device Request new device support
Projects
None yet
Development

No branches or pull requests

2 participants