Skip to content

Releases: rytilahti/python-miio

0.3.8: Goodbye Python 3.4

10 Mar 15:39
Compare
Choose a tag to compare

Goodbye Python 3.4! This release marks end of support for python versions older than 3.5, paving a way for cleaner code and a nicer API for a future asyncio support. Highlights of this release:

  • Support for several new devices, improvements to existing devices and various fixes thanks to @syssi.

  • Firmware updates for vacuums (@rytilahti), the most prominent use case being installing custom firmwares (e.g. for rooting your device). Installing sound packs is also streamlined with a self-hosting server.

  • The protocol quirks handling was extended to handle invalid messages from the cloud (thanks @jschmer), improving interoperability for Dustcloud.

New devices:

  • Chuangmi Plug V3 (@syssi)
  • Xiaomi Air Humidifier CA (@syssi)
  • Xiaomi Air Purifier V3 (@syssi)
  • Xiaomi Philips LED Ceiling Light 620mm (@syssi)

Improvements:

  • Provide the mac address as property of the device info (@syssi)
  • Air Purifier: button_pressed property added (@syssi)
  • Generalize and move configure_wifi to the Device class (@rytilahti)
  • Power Strip: The wifi led and power price can be controlled now (@syssi)
  • Try to fix decrypted payload quirks if it fails to parse as json (@jschmer)
  • Air Conditioning Companion: Turn on/off and LED property added, load power fixed (@syssi)
  • Strict check for version equality of construct (@arekbulski)
  • Firmware update functionality (@rytilahti)

0.3.7

18 Feb 21:41
Compare
Choose a tag to compare

This is a bugfix release which provides improved stability and compatibility.

Full Changelog

Closed issues:

  • construct.core.StreamError: could not write bytes, expected 4, found 8 #227
  • yeelink.light.color1 unsupported #225
  • Cant decode token (invalid start byte) #224
  • from Construct developer, a note #222

Merged pull requests:

0.3.6

13 Feb 20:12
Compare
Choose a tag to compare

This is a bugfix release because of further breaking changes of the underlying library construct.

Improvements:

  • Lazy discovery on demand (@syssi)
  • Support of construct 2.9.23 to 2.9.30 (@yawor, @syssi)
  • Avoid device crash on wrap around of the sequence number (@syssi)
  • Extended support of the Philips Ceiling Lamp (@syssi)

Full Changelog

Closed issues:

  • Unable to discover a device #217
  • AirPurifier set_mode #213
  • Construct 2.9.28 breaks the Chuangmi IR packet assembly #212
  • Set mode for Air Purifier 2 not working #207
  • Trying to get map data without rooting #206
  • Unknown miio device found #204
  • Supporting raw and pronto optional parameter without type specifier. #199

Merged pull requests:

  • Fixes for the API change of construct v2.9.30 #220 (syssi)
  • Philips Ceiling Lamp: New setter "bricct" added #216 (syssi)
  • Lazy discovery on demand #215 (syssi)
  • Chuangmi IR: Fix Construct 2.9.28 regression #214 (yawor)
  • Philips Bulb crashs if _id is 0 #211 (syssi)

0.3.5

04 Feb 21:20
Compare
Choose a tag to compare

This release provides major improvements for various supported devices. Special thanks goes to @yawor for his awesome work!

Additionally, a compatibility issue when using construct version 2.9.23 and greater -- causing timeouts and inability to control devices -- has been fixed again.

Device errors are now wrapped in a exception (DeviceException) for easier handling.

New devices:

  • Air Purifier: Some additional models added to the list of supported and discovered devices by mDNS (@syssi)
  • Air Humidifier CA added to the list of supported and discovered devices by mDNS (@syssi)

Improvements:

  • Air Conditioning Companion: Extended device support (@syssi)
  • Air Humidifier: Device support tested and improved (@syssi)
  • Air Purifier Pro: Second motor speed and filter type detection added (@yawor)
  • Air Purifier: Some additional properties added (@syssi)
  • Air Quality Monitor: Additional property "time_state" added (@syssi)
  • Revise error handling to be more consistent for library users (@rytilahti)
  • Chuangmi IR: Ability to send any Pronto Hex encoded IR command added (@yawor)
  • Chuangmi IR: Command type autodetection added (@yawor)
  • Philips Bulb: New command "bricct" added (@syssi)
  • Command line interface: Make discovery to work with no IP addr and token, courtesy of @M0ses (@rytilahti)

Full Changelog

Fixed bugs:

  • TypeError: build() takes 2 positional arguments but 3 were given #201
  • Error on build message #197

Closed issues:

  • Control Air purifier and Humidifier? #177
  • Construct error, "subcon should be a Construct field" #167

Merged pull requests:

  • mDNS discovery: Additional air humidifier model (zhimi-humidifier-ca1) added #200 (syssi)
  • Make discovery to work with no IP addr and token, courtesy of M0ses #198 (rytilahti)
  • Minimum supported version of construct specified #196 (syssi)
  • Chuangmi IR command type autodetection #195 (yawor)
  • Point hound-ci to the flake8 configuration. Second try. #193 (syssi)
  • Fix a breaking change of construct 2.9.23 #192 (syssi)
  • Air Purifier: SleepMode enum added. SleepMode isn't a subset of OperationMode #190 (syssi)
  • Point hound-ci to the flake8 configuration #189 (syssi)
  • Features of mixed air purifier models added #188 (syssi)
  • Air Quality Monitor: New property "time_state" added #187 (syssi)
  • Philips Bulb: New setter "bricct" added #186 (syssi)
  • Tests for the Chuangmi IR controller #184 (syssi)
  • Chuangmi IR: Add ability to send any Pronto Hex encoded IR command. #183 (yawor)
  • Tests for the Xiaomi Air Conditioning Companion #182 (syssi)
  • Flake8 configuration updated #181 (syssi)
  • Revise error handling to be more consistent for library users #180 (rytilahti)
  • All device specific exceptions should derive from DeviceException #179 (syssi)
  • Air Purifier Pro second motor speed #176 (yawor)
  • Tests of the Air Purifier improved #174 (syssi)
  • New properties of the Xiaomi Air Humidifier added #173 (syssi)
  • Return type of the property "volume" should be Optional #172 (syssi)
  • Missing dependency "appdirs" added #171 (syssi)
  • Xiaomi Air Humidifier: Unavailable property "led" removed. #170 (syssi)
  • Extended Air Conditioning Companion support #169 (syssi)

0.3.4

03 Feb 09:42
ea756d0
Compare
Choose a tag to compare

The most significant change for this release is unbreaking the communication when using a recent versions of construct library (thanks to @syssi). On top of that there are various smaller fixes and improvements, e.g. support for sound packs and running python-miio on Windows.

New devices:

  • Air Purifier 2S added to the list of supported and discovered devices by mDNS (@harnash)

Improvements:

  • Air Purifier Pro: support for sound volume level and illuminance sensor (@yawor)
  • Vacuum: added sound pack handling and ability to change the sound volume (@rytilahti)
  • Vacuum: better support for status information on the 2nd gen model (@hastarin)

Full Changelog

Fixed bugs:

  • Error with info command #156
  • Change hard coded /tmp to cross-platform tempfile #148

Closed issues:

  • mirobo vacuum sound volume control #159
  • wifi signal strength #155
  • xiaomi philips bulb & philips ceiling #151
  • Vaccum Timer / Timezone issue #149
  • Exception when displaying Power load using Plug CLI #144
  • Missing states and error_codes #57

Merged pull requests:

  • Use appdirs' user_cache_dir for sequence file #165 (rytilahti)
  • Add a more helpful error message when info() fails with an empty payload #164 (rytilahti)
  • Adding "Go to target" state description for Roborock S50. #163 (hastarin)
  • Add ability to change the volume #162 (rytilahti)
  • Added Air Purifier 2S to supported devices #161 (harnash)
  • Modified to support zoned cleaning mode of Roborock S50. #160 (hastarin)
  • Fix for a breaking change of construct 2.8.22 #158 (syssi)
  • Air Purifier Pro: support for sound volume level and fix for bright propery #157 (yawor)
  • Add preliminary support for managing sound files #154 (rytilahti)

0.3.3

18 Dec 20:00
dd76fcd
Compare
Choose a tag to compare

This release brings support for Air Conditioner Companion along some improvements and an increase in the test coverage for future-proofing the code-base. Special thanks for this release goes to @syssi & to all new contributors!

A bug exposed in python-miio when using version 2.8.17 or newer of the underlying construct library -- causing timeouts and inability to control devices -- has also been fixed in this release.

New supported devices:

  • Xiaomi Mi Home Air Conditioner Companion

Improvements:

  • Mi Vacuum 2nd generation is now detected by discovery
  • Air Purifier 2: expose additional properties
  • Yeelight: parse RGB properly

Full Changelog

Implemented enhancements:

  • Xiaomi Mi Home Air Conditioner Companion support #76

Closed issues:

  • Philip Eye Care Lamp Got error when receiving: timed out #146
  • Can't reach my mirobo #145
  • installiation problems #130
  • Unable to discover Xiaomi Philips LED Bulb #106
  • Xiaomi Mi Robot Vacuum 2nd support #90

Merged pull requests:

  • Update for Rock Robot (Mi Robot gen 2) #143 (fanthos)
  • Unbreak the communication when using construct v2.8.17 #142 (rytilahti)
  • fix powerstate invalid #139 (roiff)
  • Unit tests for the Chuang Mi Plug V1 #137 (syssi)
  • Unit tests of the Xiaomi Power Strip extended #136 (syssi)
  • Unit tests for the Xiaomi Air Quality Monitor #135 (syssi)
  • Unit tests for the Xiaomi Air Humidifier #134 (syssi)
  • Unit tests for philips lights #133 (syssi)
  • Additional properties of the Xiaomi Air Purifier 2 introduced #132 (syssi)
  • Fix Yeelight RGB parsing #131 (Sduniii)
  • Xiaomi Air Conditioner Companion support #129 (syssi)
  • Fix manual_control error message typo #127 (skorokithakis)
  • bump to 0.3.2, add RELEASING.md for describing the process #126 (rytilahti)

0.3.2

21 Nov 07:38
68a4cf2
Compare
Choose a tag to compare

This release includes small improvements for powerstrip and vacuum support. Furthermore this is the first release with proper documentation. Generated docs are available at https://python-miio.readthedocs.io - patches to improve them are more than welcome!

Improvements:

  • Powerstrip: expose correct load power, works also now without cloud connectivity
  • Vacuum: added ability to reset consumable states
  • Vacuum: exposes time left before next sensor clean-up

Full Changelog

Closed issues:

  • philips.light.ceiling Unsupported device found! #118
  • Xiaomi Philips ceiling light automation #116
  • Unsupported device found #112
  • PM2.5 Faster Readout #111

Merged pull requests:

  • add pure text LICENSE #125 (rytilahti)
  • Add GPLv3 license #124 (pluehne)
  • Don’t require typing with Python 3.5 and newer #123 (pluehne)
  • Powerstrip fixes #121 (rytilahti)
  • Added time left for recommended sensor cleaning #119 (bbbenji)
  • Load power of the PowerStrip fixed and removed from the Plug #117 (syssi)
  • Reset consumable by name #115 (mrin)
  • Model name of the Xiaomi Philips Ceiling Lamp updated #113 (syssi)
  • Update apidocs for sphinx-generated documentation, which follows at l… #93 (rytilahti)

0.3.1

02 Nov 07:27
Compare
Choose a tag to compare

New supported devices:

  • Xioami Philips Smart LED Ball Lamp

Improvements:

  • Vacuum: add ability to configure used wifi network
  • Plug V1: improved discovery, add temperature reporting
  • Airpurifier: setting of favorite level works now
  • Eyecare: safer mapping of properties

Breaking:

  • Strip has been renamed to PowerStrip to avoid confusion

0.3.0: Good bye to python-mirobo, say hello to python-miio!

18 Dec 20:01
Compare
Choose a tag to compare

Good bye to python-mirobo, say hello to python-miio!
As the library is getting more mature and supports so many other devices besides the vacuum sporting the miIO protocol,
it was decided that the project deserves a new name.
The name python-miio was previously used by a fork of python-mirobo, and we are thankful to SchumyHao for releasing the name for us.

The old "mirobo" package will continue working (and is API compatible) for the foreseeable future,
however, developers using this package (if any) are encouraged to port their code over to use the the new "miio" package.
The old command-line tools remain as they are.

In order to simplify the initial configuration, a tool to extract tokens from a Mi Home's backup (Android) or its database (Apple, Android) is added. It will also decrypt the tokens if needed, a change which was introduced recently how they are stored in the database of iOS devices.

Improvements:

  • Vacuum: add support for configuring scheduled cleaning
  • Vacuum: more user-friendly do-not-disturb reporting
  • Vacuum: VacuumState's 'dnd' and 'in_cleaning' properties are deprecated in favor of 'dnd_status' and 'is_on'.
  • Power Strip: load power is returned now correctly
  • Yeelight: allow configuring 'developer mode', 'save state on change', and internal name
  • Properties common for several devices are now named more consistently

New supported devices:

  • Xiaomi PM2.5 Air Quality Monitor
  • Xiaomi Water Purifier
  • Xiaomi Air Humidifier
  • Xiaomi Smart Wifi Speaker (incomplete, help wanted)

Full Changelog

Implemented enhancements:

  • Column ZToken of the iOS app contains a 96 character token #75
  • Xiaomi PM2.5 Air Quality Monitor support #70

Closed issues:

  • Calling message handler 'onHeartbeat'. #82
  • How do I find more features? #10

Merged pull requests:

  • Device support of the Xiaomi PM2.5 Air Quality Monitor introduced #89 (syssi)
  • wrap vacuum's dnd status inside an object #87 (rytilahti)
  • Initial support for wifi speakers #86 (rytilahti)
  • Extend yeelight support #85 (rytilahti)
  • Discovery: Device name of the zimi powerstrip v2 fixed #84 (syssi)
  • Rename the project to python-miio #83 (rytilahti)
  • Device support of the Xiaomi Power Strip updated #81 (syssi)
  • WIP: Extract Android backups, yield devices instead of just echoing #80 (rytilahti)
  • add a note about miio-extract-tokens #79 (rytilahti)
  • Implement adding, deleting and updating the timer #78 (rytilahti)
  • Add miio-extract-tokens tool for extracting tokens from sqlite databases #77 (rytilahti)
  • WIP: Avoid discovery flooding #72 (syssi)
  • mDNS discovery: New air purifier model (zhimi-airpurifier-m2) #68 (syssi)
  • First draft of the water purifier support #67 (syssi)
  • Device support of the Xiaomi Air Humidifier #66 (syssi)
  • Device info extended by two additional properties #65 (syssi)
  • Abstract device model exteded by model name (identifier) #64 (syssi)
  • Adjust property names of some devices #63 (syssi)

0.2.0

18 Dec 20:01
Compare
Choose a tag to compare

Considering how far this project has evolved from being just an interface for the Xiaomi vacuum, it is time to leave 0.1 series behind and call this 0.2.0.

This release brings support to a couple of new devices, and contains fixes for some already supported ones.
All thanks for the improvements in this release go to syssi!

  • Extended mDNS discovery to support more devices (@syssi)
  • Improved support for the following devices:
  • New supported devices:
    • Chuangmi IR Remote control (@syssi)
    • Xiaomi Mi Smart Fan (@syssi)

Full Changelog

Closed issues:

  • Error in new mirobo/protocol.py #54
  • Some element about Xiaomi Philips Bulb #43
  • Philips Bulb and ceiling how to get token ? #42
  • Add support for other devices using the same protocol #17
  • Allow sending discovery packets to static IP address #5

Merged pull requests:

  • trivial: fix typo in automatic discovery description. #61 (haim0n)
  • Some typos fixed #60 (syssi)
  • Fixes an AttributeError: PlugStatus object has no attribute current #59 (syssi)
  • Fixes various lint issues #58 (syssi)
  • Air Purifier: Set favorite level fixed #55 (syssi)
  • mDNS name of the Chuangmi Infrared Controller #53 (syssi)
  • Device support for the Xiaomi Mi Smart Fan #52 (syssi)
  • mDNS device map extended #51 (syssi)
  • Power strip: Fixes calculation of the instantaneous current #50 (syssi)
  • Air purifier: defaultdict used for safety and transparency #49 (syssi)
  • Device support for the Chuangmi IR Remote Controller #46 (syssi)
  • Xiaomi Ceiling Lamp: Some refactoring and fault tolerance if a philips light ball is used #45 (syssi)
  • New dependency "zeroconf" added. It's used for discovery now. #44 (syssi)
  • Readme for firmware >= 3.3.9_003077 (Vacuum robot) #41 (mthoretton)
  • Some improvements of the air purifier support #40 (syssi)