rytilahti / python-miio

Python library & console tool for controlling Xiaomi smart appliances
https://python-miio.readthedocs.io
GNU General Public License v3.0
3.64k stars 550 forks source link

Xiaomi Smart Kettle 2 Pro - Support request #1655

Open Itzamna44 opened 1 year ago

Itzamna44 commented 1 year ago

Before submitting a new request, use the search to see if there is an existing issue for the device.

Device information:

Use miiocli device --ip <ip address> --token <token> info.

Additional context There is spec for it: https://home.miot-spec.com/spec?type=urn:miot-spec-v2:device:kettle:0000A009:yunmi-v19:1

rytilahti commented 1 year ago

Feel free to try miiocli genericmiot on the current git master new branch for generic support.

Itzamna44 commented 1 year ago

Yes, it works.

miiocli genericmiot --ip ip --token token status Status (kettle:status): Idle (value: 0) (from: Idle (0), Heating (1), Boiling (2), Cooling (3), Keep Warm (4)) Device Fault (kettle:fault): 0 None (min: 0, max: 255, step: 1) Temperature (kettle:temperature): 52 None (min: -30, max: 100, step: 1) [S] Target Temperature (kettle:target-temperature): 99 None (min: 40, max: 99, step: 1) [S] Auto Keep Warm (kettle:auto-keep-warm): False [S] Keep Warm Temperature (kettle:keep-warm-temperature): 40 None (min: 0, max: 100, step: 1) [S] keep-warm-time (function:keep-warm-time): 12:00:00 (min: 60, max: 1440, step: 30) [S] (function:custom-knob-temp): False [S] (function:lift-remember-temp): True [S] (function:boiling-reminder): True [S] (function:keep-warm-reminder): True (function:kettle-lifting): False [S] extended-mode (function:extended-mode): 温水,45,1,45,720_泡枸杞,70,1,70,720_花茶,80,1,80,720 None warming-time (function:warming-time): 0 None (min: 0, max: 720, step: 1) [S] target-mode (function:target-mode): 1 None (min: 0, max: 128, step: 1) knob-sequence (knob-setting:knob-sequence): 1,2,3,4,0,0 None [S] knob-one (knob-setting:knob-one): 泡奶,0,45,720 None [S] (knob-setting:knob-two): 蜂蜜,0,60,720 None [S] (knob-setting:knob-three): 煮茶,0,70,720 None [S] (knob-setting:knob-four): 咖啡,0,85,720 None [S] (knob-setting:knob-five): ,0,0,0 None [S] (knob-setting:knob-six): ,0,0,0 None scene-sequence (local-timing:scene-sequence): 0,0,0,0,0 None [S] scene-one (local-timing:scene-one): 0000,0000,0,0 None [S] scene-two (local-timing:scene-two): 0000,0000,0,0 None [S] scene-three (local-timing:scene-three): 0000,0000,0,0 None [S] (local-timing:scene-four): 0000,0000,0,0 None [S] (local-timing:scene-five): 0000,0000,0,0 None

But only two actions:

miiocli genericmiot --ip ip --token token actions function:stop-work stop-work local-timing:push-water-reminder push-water-reminder

And no way to start heating. Thaks.

rytilahti commented 1 year ago

Maybe one of those settable settings (marked with [S] in the output) would start heating? If it can be controlled from the app, you could try to extract what the app is sending to the device to find out how to command it. https://python-miio.readthedocs.io/en/latest/contributing.html#improving-device-support contains information about how to do traffic captures.