Cliente Python para lava-louças Midea (device_type 0xE1, plugin v5) — codec do frame AA + transporte LAN V3.
Project description
midea-dishwasher-api
Cliente Python para lava-louças Midea (device_type 0xE1, plugin v5).
Implementa o protocolo de aplicação AA … E1 e a camada de transporte LAN V3
(handshake 8370 + AES-128-CBC + SHA-256, com framing V2 5A5A interno).
Instalação
pip install midea-dishwasher-api[lan]
O extra lan instala cryptography, necessário para falar diretamente com a
máquina via LAN. Sem o extra, o pacote ainda expõe o codec do frame e o
parser de status para uso com transporte próprio (cloud, mock, etc.).
Uso rápido
from midea_dishwasher_api import BrightLevel, Client, Mode, V3Transport
with V3Transport(
host="192.168.5.100",
device_id=151732606394621,
token=bytes.fromhex("..."), # 64 bytes
key=bytes.fromhex("..."), # 32 bytes
) as transport:
client = Client(send=transport)
status = client.query_status()
print(status.machine_state) # MachineState.POWER_ON / POWER_OFF
print(status.cycle_state) # CycleState.IDLE / WORK / ORDER / ...
print(status.left_time) # minutos restantes (apenas em WORK)
print(status.door_closed)
print(status.bright_lack) # secante acabou?
client.power_on()
client.start_to_work(mode=Mode.ECO, extra_drying=True)
client.set_bright(BrightLevel.L3)
client.cancel_work()
client.power_off()
Os métodos de controle não retornam estado (a máquina demora alguns segundos
para refletir a mudança). Chame query_status() quando quiser estado fresco.
API
Client
| Método | Efeito |
|---|---|
query_status() -> DishwasherStatus |
Lê o estado atual |
power_on() |
Liga a máquina |
power_off() |
Desliga |
cancel_work() |
Cancela ciclo / volta ao idle |
start_to_work(mode, extra_drying=False) |
Inicia ciclo |
set_bright(level: BrightLevel) |
Ajusta o nível do abrilhantador (1–5) |
DishwasherStatus
Campos decodificados da resposta:
machine_state: MachineState | None—POWER_ON/POWER_OFFcycle_state: CycleState | None—idle,order,work,error, ...wash_stage: WashStage | int | None—IDLE,PRE_WASH,MAIN_WASH,RINSE,DRY,FINISHerror_code: ErrorCode | int—NONE,WATER_SUPPLY,HEATING,OVERFLOW,WATER_VALVEleft_time: int | None— minutos restantes (preenchido apenas quandocycle_state == WORK)door_closed: boolbright_lack: bool— secante (rinse aid) acabou
Modos disponíveis (Mode)
AUTO, INTENSIVE, NORMAL, ECO, GLASS, NINETY_MIN, ONE_HOUR,
RAPID, SOAK, THREE_IN_ONE, HYGIENE, QUIET, PARTY, FRUIT.
Transporte customizado
Client aceita qualquer Callable[[bytes], bytes] como send. Útil para
testes com transporte mock, integração com cloud, ou pipeline próprio:
def fake_send(frame: bytes) -> bytes:
return assemble_frame(b"...", 0x02)
client = Client(send=fake_send)
Como obter token e key
São credenciais por dispositivo emitidas pela cloud da Midea. Use ferramentas
existentes (midea-msmart, midea-beautiful-air, midea-discover) para
extrair a partir da sua conta no app.
Licença
MIT — ver LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file midea_dishwasher_api-1.0.0.tar.gz.
File metadata
- Download URL: midea_dishwasher_api-1.0.0.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd9dc26a77c0ce8b46573213b32c9e741f6cb1dbf57804667a2c39f3eed6a132
|
|
| MD5 |
61232753b8fa5d0eee8d863944814d71
|
|
| BLAKE2b-256 |
4ec8dde3c84dbe1300191e7f3d4902b0fa53b73c534e8f7d04e5530996858c4c
|
File details
Details for the file midea_dishwasher_api-1.0.0-py3-none-any.whl.
File metadata
- Download URL: midea_dishwasher_api-1.0.0-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65fcfb9bccddd42feca45c67adf29fc8bfd10f487ecf17c8bed881550d892ff1
|
|
| MD5 |
68d850eb9e3f740a053b62183e61a75c
|
|
| BLAKE2b-256 |
78615a762218462caedcf15ae8ca177d78884f940c5572b34448fd5eac98ffe9
|