Xiaomi Mi Cloud from python

Настройка

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΎΡ‚ Gateway

pip install micloud
micloud -u maksim77ster@gmail.com -p <password> -c cn > result.json

Надо Π½Π°ΠΉΡ‚ΠΈ Gateway Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ спискС. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. БоотвСтствСнно нас интСрСсуСт:

  • IP: cat result.json| jq ".[0].localip"
  • TOKEN: cat result.json| jq ".[0].token"

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

pip install python-miio==0.5.12

ВСрсия Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ. ΠŸΠΈΡˆΡƒ просто Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Ρƒ мСня Π½Π° 2022-11-16.

Код

from miio.gateway.gateway import Gateway
 
g = Gateway('100.64.88.74', '31fc********d8007*****0f')
# g.discover_devices()
{'lumi.158d00025c03e4': <Subdevice SensorHT: lumi.158d00025c03e4, model: WSDCGQ11LM, zigbee: lumi.weather.v1, fw: 3, bat: 60, vol: None, props: {'temperature': None, 'humidity': None, 'pressure': None}>,
 'lumi.158d000326dc60': <Subdevice Switch: lumi.158d000326dc60, model: QBKG03LM, zigbee: lumi.ctrl_neutral2, fw: 1, bat: None, vol: None, props: {'status_ch0': None, 'status_ch1': None}>,
 'lumi.158d000233b33c': <Subdevice WaterLeakSensor: lumi.158d000233b33c, model: SJCGQ11LM, zigbee: lumi.sensor_wleak.aq1, fw: 4, bat: 60, vol: None, props: {}>,
 'lumi.158d00033aeb98': <Subdevice Motion: lumi.158d00033aeb98, model: RTCGQ11LM, zigbee: lumi.sensor_motion.aq2, fw: 5, bat: 60, vol: None, props: {'motion': False}>,
 'lumi.158d0004830970': <Subdevice Switch: lumi.158d0004830970, model: QBKG03LM, zigbee: lumi.ctrl_neutral2, fw: 1, bat: None, vol: None, props: {'status_ch0': None, 'status_ch1': None}>,
 'lumi.158d000345660b': <Subdevice Switch: lumi.158d000345660b, model: QBKG04LM, zigbee: lumi.ctrl_neutral1.v1, fw: 1, bat: None, vol: None, props: {'status_ch0': None}>,
 'lumi.158d0004515e61': <Subdevice Switch: lumi.158d0004515e61, model: QBKG04LM, zigbee: lumi.ctrl_neutral1.v1, fw: 1, bat: None, vol: None, props: {'status_ch0': None}>,
 'lumi.158d00032165d8': <Subdevice Magnet: lumi.158d00032165d8, model: MCCGQ11LM, zigbee: lumi.sensor_magnet.aq2, fw: 3, bat: 60, vol: None, props: {'is_open': False}>,
 'lumi.158d00045167bf': <Subdevice Switch: lumi.158d00045167bf, model: QBKG04LM, zigbee: lumi.ctrl_neutral1.v1, fw: 1, bat: None, vol: None, props: {'status_ch0': None}>}
sensor = g.discover_devices()['lumi.158d00025c03e4']
sensor.update()
 
# print(sensor._props)
# {'temperature': 9.31, 'humidity': 26.75, 'pressure': 994.6}
 
print(f"Temperature: {sensor._props['temperature']}")
print(f"Humidity: {sensor._props['humidity']}")
Temperature: 18.03
Humidity: 24.39