프로젝트 소개

python-miio는 miIO 및 MIoT 프로토콜을 사용하는 샤오미 스마트 가전을 제어하기 위한 커뮤니티 기반 Python 라이브러리이자 함께 제공되는 명령줄 도구 miiocli입니다. 샤오미나 지원 대상 기기 제조사와는 제휴 관계가 없습니다. 설치는 pip(python-miio) 또는 개발 버전의 경우 GitHub 저장소에서 할 수 있습니다. README는 진행 중인 리팩터링 작업을 언급하며, 버전 0.6.0이 출시될 때까지 최신 MIoT 기기를 제어하려면 git 버전이나 사전 릴리스를 권장합니다. 시작하기: miiocli는 지원되는 기기의 IP 주소와 토큰이 있으면 제어할 수 있습니다. 토큰은 miiocli cloud 명령(micloud 라이브러리 사용)으로 샤오미 클라우드 계정에서 가져오거나, 문서화된 다른 방법으로 얻을 수 있습니다. 일반 info 명령은 모델, 하드웨어 및 펌웨어 버전, 지원되는 통합 클래스, 제어에 사용할 정확한 명령을 보고합니다. 최신 MIoT 기기는 genericmiot 통합으로 처리되며, 이는 기기 모델 사양 파일을 다운로드하고 캐시하여 센서, 설정 및 동작을 검색합니다. 일반적인 명령으로는 status(상태 표시 및 읽기-쓰기 설정에 허용되는 값), set(이름으로 설정 변경), actions(사용 가능한 동작 나열), call(동작 실행)이 있습니다. 구형 miIO 기기는 roborockvacuum 또는 fan과 같은 기기별 모듈을 통해 지원되며, 각 모듈은 자체 하위 명령을 제공합니다. 모델 감지는 자동이지만 클라우드 연결을 사용할 수 없을 때 --model 플래그로 재정의할 수 있습니다. 문제 해결 지원에는 로그 상세도를 높이기 위한 반복 가능한 --debug/-d 플래그, 문제 해결 문서 섹션, GitHub 이슈 및 토론, Matrix 채팅방이 포함됩니다. API 사용: miio 모듈이 모든 기능을 제공합니다. DeviceFactory.create(ip, token)는 info 쿼리를 수행하여 모델을 감지하고 일치하는 기기 클래스를 생성합니다. 기기 클래스는 sensors(), settings(), actions()를 통해 내부를 살펴볼 수 있으며, 이들은 사용 가능한 기능을 설명하는 디스크립터 객체를 반환합니다. 아직 모든 통합이 디스크립터를 정의하지는 않았습니다. 버그 수정, 기능 및 문서 기여를 환영하며, 짧은 기여 가이드가 제공됩니다. 하드웨어가 없는 개발자를 위해 프로젝트는 코드 테스트용 간단한 miIO 및 MIoT 시뮬레이터를 제공합니다. README는 샤오미 로봇 청소기(Mi Robot Vacuum V1, S4, S4 MAX, S5, S5 MAX, S6 Pure, M1S, S7, 그리고 다양한 Dreame 및 Viomi 모델), 공기청정기, 가습기, 에어컨, 카메라, 게이트웨이, 플러그, 멀티탭, 램프 및 전구, IR 리모컨, 스탠드 선풍기, 정수기, 공기질 모니터, 스피커, Wi-Fi 리피터, 전기밥솥, 신선 공기 시스템, Yeelight 조명, 히터, 커튼 컨트롤러, 식기세척기, 커피 머신, 반려동물 급수기 등 광범위한 지원 기기를 나열합니다. 모든 MIoT 기기는 genericmiot를 통해 지원된다고 합니다. Home Assistant는 여러 플랫폼(vacuum, light, fan, switch, remote, sensor, alarm control panel, device tracker)에서 이 라이브러리를 공식적으로 사용하며, 다양한 사용자 정의 Home Assistant 컴포넌트도 이를 기반으로 합니다. 언급된 관련 프로젝트로는 dustcloud, Valetudo, micloud, micloudfaker 및 Xiaomi Cloud Tokens Extractor가 있습니다.