Skip to content

Commit

Permalink
Initial support for chunmi.cooker.eh1 (#1018)
Browse files Browse the repository at this point in the history
This provides basic support for the Xiaomi Mi Smart MultiCooker.

This is supported:

- Start/Set a recipe profile
  - With support for duration, schedule and autokeepwarm (akw)
- Get some status information including:
  - operation mode
  - menu
  - cooking stage (incomplete)
  - temperature + history
  - cooking times

This is not supported:

- any other change to  cooking profiles except: duration, schedule, akw
  - like: rice type, taste setting, temperature curve etc...
- cooker settings
- factory reset
- firmware version
- ...

---------

Co-authored-by: Teemu Rytilahti <[email protected]>
  • Loading branch information
sschirr and rytilahti authored May 4, 2024
1 parent 8643a57 commit 204f19d
Show file tree
Hide file tree
Showing 8 changed files with 1,035 additions and 340 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,12 @@ jobs:
- name: "Install dependencies"
run: |
python -m pip install --upgrade pip poetry
poetry install --extras docs
poetry install --all-extras
- name: "Run tests"
run: |
poetry run pytest --cov miio --cov-report xml
- name: "Upload coverage to Codecov"
uses: "codecov/codecov-action@v3"
uses: "codecov/codecov-action@v4"
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
1 change: 1 addition & 0 deletions miio/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
from miio.integrations.chuangmi.plug import ChuangmiPlug
from miio.integrations.chuangmi.remote import ChuangmiIr
from miio.integrations.chunmi.cooker import Cooker
from miio.integrations.chunmi.cooker_multi import MultiCooker
from miio.integrations.deerma.humidifier import AirHumidifierJsqs, AirHumidifierMjjsq
from miio.integrations.dmaker.airfresh import AirFreshA1, AirFreshT2017
from miio.integrations.dmaker.fan import Fan1C, FanMiot, FanP5
Expand Down
22 changes: 22 additions & 0 deletions miio/data/cooker_profiles.json
Original file line number Diff line number Diff line change
Expand Up @@ -191,5 +191,27 @@
"description": "70 minutes cooking to preserve taste of the food",
"profile": "0104E1010A0000000000800200A00069030102780000085A020000EB006B040102780000085A0400012D006E0501027D0000065A0400FFFF00700601027D0000065A0400052D0A0F3C0A1E91FF820E01FF05FF78826EFF10FF786E02690F1EFF826EFF691400FF826EFF69100069FF5AFF00000000000042A7"
}
],
"MODEL_MULTI": [
{
"title": "Jingzhu",
"description": "60 minutes cooking for tasty rice",
"profile": "02010000000001e101000000000000800101050814000000002091827d7800050091822d781c0a0091823c781c1e0091ff827820ffff91828278000500ffff8278ffffff91828278000d00ff828778ff000091827d7800000091827d7800ffff91826078ff0100490366780701086c0078090301af540266780801086c00780a02023c5701667b0e010a71007a0d02ffff5701667b0f010a73007d0d032005000000000000000000000000000000cf53"
},
{
"title": "Kuaizhu",
"description": "Quick 40 minutes cooking",
"profile": "02010100000002e100280000000000800101050614000000002091827d7800000091823c7820000091823c781c1e0091ff827820ffff91828278000500ffff8278ffffff91828278000d00ff828778ff000082827d7800000091827d7800ffff91826078ff0164490366780701086c007409030200540266780801086c00760a0202785701667b0e010a7100780a02ffff5701667b0f010a73007b0a032005000000000000000000000000000000ddba"
},
{
"title": "Zhuzhou",
"description": "Cooking on slow fire from 40 minutes to 4 hours",
"profile": "02010200000003e2011e0400002800800101050614000000002091827d7800000091827d7800000091827d78001e0091ff877820ffff91827d78001e0091ff8278ffffff91828278001e0091828278060f0091827d7804000091827d7800000091827d780001f54e0255261802062a0482030002eb4e0255261802062a04820300032d4e0252261802062c04820501ffff4e0152241802062c0482050120000000000000000000000000000000009ce2"
},
{
"title": "Baowen",
"description": "Keeping warm at 73 degrees",
"profile": "020103000000040c00001800000100800100000000000000002091827d7800000091827d7800000091827d78000000915a7d7820000091827d7800000091826e78ff000091827d7800000091826e7810000091826e7810000091827d7800000091827d780000a082007882140010871478030000eb820078821400108714780300012d8200788214001087147a0501ffff8200788214001087147d0501200000000000000000000000000000000090e5"
}
]
}
3 changes: 3 additions & 0 deletions miio/integrations/chunmi/cooker_multi/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .cooker_multi import MultiCooker

__all__ = ["MultiCooker"]
Loading

0 comments on commit 204f19d

Please sign in to comment.