Python client for Midea dhumidifier

Overview

This is a library that allows communication with Midea dehumidifier appliances via the local area network.

midea-beautiful-dehumidifier

Build Status PyPI

This library allows discovering Midea dehumidifiers on local network, getting their state and controlling then. The name comes from Chinese name for Midea (美的) which translates to beautiful in English.

This libary inspired from the repository at mac-zhou/midea-msmart which provides similar functionality for air conditioners.

Thanks for yitsushi's project, NeoAcheron's project, andersonshatch's project, barban's project

Supported appliances

The library works only Midea dehumidifiers supporting V3 protocol. Both appliances with and without ion function are supported.

Some tested examples of supported dehumidifiers:

  • Comfee MDDF-20DEN7-WF
  • Inventor Eva Ion Pro Wi-Fi 20L

It may work with Comfee, Inventor, Pro Breeze WiFi, as well as other Midea WiFi dehumidifiers.

Dehumidifier data

The following dehumidifier data is accessible via library:

  • on/off switch (boolean, can be set)
  • current humidity (read-only)
  • target humidity (can be set)
  • active mode (can be set)
  • fan speed (can be set)
  • ion switch status (boolean, can be set)
  • tank is full (boolean, read-only)
  • appliance name (read-only). This one is set through Midea application.
  • appliance serial number (read-only)
  • appliance IPv4 address (read-only)
  • token and key for local network access (read-only)

Discovery

Library can discover appliances on local network. This is done by broadcasting UDP packets on all local networks interfaces to ports 6445. Appliances will respond to this broadcast with description information. Following discovery communication usually goes over port 6444. It also retrieves known appliances from Midea cloud account and then matches this information with information retrieved via local network. Local network communication is encrypted using Midea protocol.

Usage

Discover dehumidifier appliances on the local network:

pip install midea-beautiful-dehumidifier
python -m midea_beautiful_dehumidifier.cli discover --account ACCOUNT_EMAIL --password PASSWORD
# Show tokens used to connect to appliances via local network
python -m midea_beautiful_dehumidifier.cli discover --account ACCOUNT_EMAIL --password PASSWORD --credentials

Get status of an appliance:

pip install midea-beautiful-dehumidifier
python -m midea_beautiful_dehumidifier.cli status --ip APPLIANCE_IP_ADDRESS --token TOKEN --key KEY

TOKEN and KEY can be retrieved using discover command.

Set appliance attribute (target humidity, mode, ion switch, fan speed):

pip install midea-beautiful-dehumidifier
python -m midea_beautiful_dehumidifier.cli set --ip APPLIANCE_IP_ADDRESS --token TOKEN --key KEY --mode MODE

See also

Comments
  • Cannot login with MSmartHome

    Cannot login with MSmartHome

    Unable to connect to Midea cloud API (Cloud authentication error: this account does not exist (3102)).

    But my account is valid i've tried logging in/out of the MSmartApp. Thanks!

    Originally posted by @ethan021021 in https://github.com/nbogojevic/midea-beautiful-air/issues/5#issuecomment-1086246156

    opened by ethan021021 28
  • Adds MSmartHome to supported apps

    Adds MSmartHome to supported apps

    Midea recently transitioned their Midea Air app to the MSmartHome app which stops Midea accounts from working after the migration. This PR adds the app key and id to supported apps

    opened by ethan021021 15
  • EVA II PRO WiFi support

    EVA II PRO WiFi support

    Hi Nenad

    Would it be possible to extend this library to manage EVA II PRO WiFi Smart Dehumidifier appliance? It is similar to midea. Midea apk is also capable to control it as well as its own Invmade || apk.

    There is a library to control it via cloud, but would be great if it could be managed over LAN.

    I did some port scanning and seams that it is listenig on port 6444. https://github.com/barban-dev/midea_inventor_dehumidifier

    opened by skovacev 10
  • Error running program

    Error running program

    I am trying to run the program, but keep getting an error that I cannot resolve:

    pi@hue ~ $ midea-beautiful-air-cli discover --help Traceback (most recent call last): File "/home/pi/.local/bin/midea-beautiful-air-cli", line 6, in from midea_beautiful.cli import cli File "/home/pi/.local/lib/python3.7/site-packages/midea_beautiful/init.py", line 6, in from midea_beautiful.cloud import MideaCloud File "/home/pi/.local/lib/python3.7/site-packages/midea_beautiful/cloud.py", line 304 if data := response.get("data", {}):

    bug 
    opened by bluemantwo 6
  • Humidity & Temperature decimals are lost and temperature seems lower than reality by 2 to 3 Celcius

    Humidity & Temperature decimals are lost and temperature seems lower than reality by 2 to 3 Celcius

    I noticed into my Home Assistant that temperature was lower than before even if my environment temperature did not change and is controlled by smart thermostats

    It also looks like decimals were lost. I looked at commits from https://github.com/nbogojevic/homeassistant-midea-dehumidifier-lan but didn't find anything relevant except that it is using the midea-beautiful-dehumidifier.

    Searching into commits led me to a calculation change for humidity and temperature in "class DehumidifierResponse:" https://github.com/nbogojevic/midea-beautiful-dehumidifier/commit/5bf009809bfb4b7018d5d981b35e725574ed8866

    I don't know much about python and data received, but perhaps it may help you resolve the issue.

    Thanks for the hard work and making this available

    opened by frangigu 6
  • ImportError: libffi.so.7: cannot open shared object file: No such file or directory

    ImportError: libffi.so.7: cannot open shared object file: No such file or directory

    Hi, I am stuck running midea-beautiful-air-cli --help or any other command. I updated my raspberry pi and for long time I have installed and running fine python 3.9.5. Have anyone seen this error before?

    pi@raspberrypi:~ $ midea-beautiful-air-cli --help Traceback (most recent call last): File "/home/pi/.local/bin/midea-beautiful-air-cli", line 5, in from midea_beautiful.cli import cli File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/init.py", line 6, in from midea_beautiful.cloud import MideaCloud File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/cloud.py", line 16, in from midea_beautiful.crypto import Security File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/crypto.py", line 17, in from midea_beautiful.midea import ( File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/midea.py", line 58, in "iotkey": decrypt_internal("f4dcd1511147af45775d7e680ac5312b"), # noqa: E501 File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/midea.py", line 30, in decrypt_internal decryptor = cipher.decryptor() File "/home/pi/.local/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/base.py", line 135, in decryptor from cryptography.hazmat.backends.openssl.backend import backend File "/home/pi/.local/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/init.py", line 6, in from cryptography.hazmat.backends.openssl.backend import backend File "/home/pi/.local/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 63, in from cryptography.hazmat.bindings.openssl import binding File "/home/pi/.local/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in from cryptography.hazmat.bindings._openssl import ffi, lib ImportError: libffi.so.7: cannot open shared object file: No such file or directory

    opened by feliutg 2
  • Setup help and explanation

    Setup help and explanation

    Hi,

    Thank you for your work. I just bought a Midea MDDF-20DEN7 dehumidifier and I want to use it local only (and integrate into openhab). Can you tell me why do I need to set cloud user and password to reach it locally? Only to get token and key? I made a mistake and migrate my new Midea Air account to MSmartHome and I got "this account does not exist" error like in issue 6. I use 0.9.10 but still account does not exist. I can run discovery with IP only and I get some data but no token of course. I tried the apiurl parameter but I don't what appkey and other should be. Can someone help me to connect to my device? Now I block internet access of my dehumidifier, maybe that is another mistake :S

    opened by douggutaby 2
  • Allow app paramter for cloud login

    Allow app paramter for cloud login

    It would be nice if connect_to_cloud support the app parameter

    At the moment all values have to handover if one is missing the default value from NetHome Plus is used

    Maybe allow to set default_app like others parameters https://github.com/nbogojevic/midea-beautiful-air/blob/8472bd025831672d3bae01be5ac60bbf77b6d03e/midea_beautiful/midea.py#L69

    enhancement 
    opened by TA2k 1
  • TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'

    TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'

    When I run the discovery command like:

    discover --account xxxx --password xxxx --credentials --proxied
    

    I get the following error message:

      File "/usr/local/lib/python3.9/site-packages/midea_beautiful_air-0.9.10-py3.9.egg/midea_beautiful/crypto.py", line 536, in sign_proxied
        msg += data
    TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'
    

    It seems to be caused by using the proxied property and not specifying and IOT Key, but I just want to obtain the key and token by logging in using the cloud api. What discovery command should I use for this?

    opened by reneklootwijk 1
  • Inventor control app

    Inventor control app

    Is your feature request related to a problem? Please describe. The dehumidifier i bought only alows me to register to app "Inventor control" as I'm not able to add it in the INVmateII or Midea Air

    Describe the solution you'd like Compatibility with this app

    opened by Jinguba 1
  • Wrong Example for cloud appliance state

    Wrong Example for cloud appliance state

    The example states

    from midea_beautiful import appliance_state
    
    appliance = appliance_state( 
        account="[email protected]",  # Account e-mail
        password="secret_password",  # Account password
        id=123412341234,  # Appliance id obtained from Midea API 
    )
    print(f"{appliance!r}")
    

    But in code looks like you have to handover a cloud object Also is needed appliance_id instead of id and use_cloud

    documentation 
    opened by TA2k 0
  • Network error getting Token and Key

    Network error getting Token and Key

    When using both dscover or status command, i get always this following error (3 times).

    WARNING:midea_beautiful.lan:Error getting device capabilities for sn=000000P0000000Q1AC93C421******** id=14513553495**** address=192.168.***** version=3, cause Unable to send data after 3 retries, last error timed out for 000000P0000000Q1AC93C421******** (14513553495****) Traceback (most recent call last): File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 809, in identify responses = self._status(cmd, cloud if use_cloud else None) File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 540, in _status responses = self.appliance_send(data) File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 685, in appliance_send return self._appliance_send_8370(data) File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 590, in _appliance_send_8370 if packets := self._retry_send(original_data, response_buf): File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 670, in _retry_send packets = self.appliance_send(data) File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 685, in appliance_send return self._appliance_send_8370(data) File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 590, in _appliance_send_8370 if packets := self._retry_send(original_data, response_buf): File "/home/pi/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 675, in _retry_send raise MideaNetworkError( midea_beautiful.exceptions.MideaNetworkError: Unable to send data after 3 retries, last error timed out for 000000P0000000Q1AC93C421******** (14513553495****)

    id 000000P0000000Q1AC93C421********/14513553495**** id = 145135534952750 addr = 192.168.1.201 s/n = 000000P0000000Q1AC93C421**** model = Air conditioner ssid = net_ac_865A online = True name = AC - Living Room running = False target = 24.0 indoor = 24.1 outdoor = 19.0 fan = 101 mode = 1 purify = False eco = False sleep = False F = False error = 0 supports= {'eco': 0, 'mode': 1, 'fan_swing': 1, 'electricity': 0, 'strong_fan': 1, 'fan_speed': 1, 'temperature0': 32, 'temperature1': 60, 'temperature2': 32, 'temperature3': 60, 'temperature4': 32, 'temperature5': 60, 'temperature6': 0} version = 3

    Any idea why is this happening ?

    opened by tteixeira 3
  • Syntax Error when running

    Syntax Error when running

    Good evening and welcome,

    I tried to install your tool on a raspberry pi. Installation went trough with no issues. But when I try running your tool, it always fails with the following syntax error:

    openhabian@openhabian:~ $ midea-beautiful-air-cli --help Traceback (most recent call last): File "/home/openhabian/.local/bin/midea-beautiful-air-cli", line 5, in from midea_beautiful.cli import cli File "/home/openhabian/.local/lib/python3.7/site-packages/midea_beautiful/init.py", line 6, in from midea_beautiful.cloud import MideaCloud File "/home/openhabian/.local/lib/python3.7/site-packages/midea_beautiful/cloud.py", line 304 if data := response.get("data", {}): ^ SyntaxError: invalid syntax

    Anything I could try to fix that? Any known issues maybe with one of the depencies?

    Thanks a lot, Christian

    opened by gforums 1
  • no TOKEN and KEY returned

    no TOKEN and KEY returned

    midea-beautiful-air-cli discover --account [email protected] --password PW --credentials --app MSmartHome

    id 000000X0000000XXX0XXXXXXXXXX0000/XXXXXXXXXXXXXX
      id      = XXXXXXXXXXXXXX
      addr    = 192.168.X.X
      s/n     = 000000X0000000XXX0XXXXXXXXXX0000
      model   = Air conditioner
      ssid    = net_ac_XXXX
      online  = True
      name    = XXXXXXX
      running = False
      target  = 22.0
      indoor  = 24.5
      outdoor = 37.5
      fan     = 102
      mode    = 2
      purify  = False
      eco     = False
      sleep   = False
      F       = False
      error   = 0
      supports= {'eco': 1, 'heat_8': 0, 'mode': 0, 'fan_swing': 1, 'electricity': 1, 'filter_reminder': 1, 'strong_fan': 1}
      version = 2
      token   = None
      key     = 
    
    opened by marcelocecin 0
  • Midea Gaia AC does not show token/key

    Midea Gaia AC does not show token/key

    Version of the library

    Library version=0.9.15

    Logs

    DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): mapp.appsmb.com:443 DEBUG:urllib3.connectionpool:https://mapp.appsmb.com:443 "POST /v1/appliance/user/list/get HTTP/1.1" 200 None DEBUG:midea_beautiful.cloud:HTTP response text: {"msg":"ok","result":{"list":[{"registerTime":"Wed Oct 12 10:54:58 UTC 2022","onlineStatus":"1","type":"0xAC","homegroupId":"","userId":"7125410","tsn":"","mac":"","des":"","activeStatus":"1","homegroupCreateUserId":"","wifiVersion":"150029092122","name":"AC-Nappali","modelNumber":"","homegroupNumber":"","id":"1451355349xxxxx","sn":"bb329d5aa7909e37a78167547835993b6ac8177dcd6335262b6be3f3998c28256c31104f896b27adebcd2ddc8fbxxxxx","userType":"1"} .. DEBUG:midea_beautiful.scanner:Broadcast attempt 1 of max 3 DEBUG:midea_beautiful.scanner:Broadcasting to 255.255.255.255 DEBUG:midea_beautiful.scanner:UDP broadcast 255.255.255.255:6445 b'ZZ\x01\x11H\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7fu\xbdk>O\x8bv.\x84\x9cnW\x8de\x90\x03n\x9dCB\xa5\x0f\x1fV\x9e\xb8\xec\x91\x8e\x92\xe5' DEBUG:midea_beautiful.scanner:Finished broadcast collection .. DEBUG:midea_beautiful.scanner:Found 0 of 3 appliance(s) WARNING:midea_beautiful.scanner:Some appliance(s) where not discovered on local network: 0 discovered out of 3 DEBUG:midea_beautiful.appliance:Creating AirConditionerAppliance 14513553493**** WARNING:midea_beautiful.scanner:Unable to discover registered appliance {'id': '14513553493****', 'name': 'AC-Nappali', 'sn': '000000P0000000Q1AC93C4D0********', 'type': '0xAC', 'modelNumber': ''} DEBUG:midea_beautiful.appliance:Creating AirConditionerAppliance 14513553493**** WARNING:midea_beautiful.scanner:Unable to discover registered appliance {'id': '14513553493****', 'name': 'AC-Hálószoba', 'sn': '000000P0000000Q1AC93C4CF********', 'type': '0xAC', 'modelNumber': ''} DEBUG:midea_beautiful.appliance:Creating AirConditionerAppliance 14623504656**** WARNING:midea_beautiful.scanner:Unable to discover registered appliance {'id': '14623504656****', 'name': 'Ebédlő', 'sn': '000000P0000000Q1AC93C4CF********', 'type': '0xAC', 'modelNumber': ''} .. id 000000P0000000Q1AC93C4CFFD6xxxxx/1462350465xxxxx id = 1462350465xxxxx addr = Unknown s/n = 000000P0000000Q1AC93C4CFFD6xxxxx model = Air conditioner ssid = None online = False name = Ebédlő running = False target = 0 indoor = 2.2250738585072014e-308 outdoor = 2.2250738585072014e-308 fan = 40 mode = 0 purify = False eco = False sleep = False F = False error = 0 supports= {} version = 3 token = None key =

    Model of appliance where problem occurs

    MIDEA GAIA Air-Conditioner MGA-12-SP (on label: GAIA-12HRFN8-I)

    Describe the bug

    As seen from the log, the device is not detected on LAN. Data is collected from cloud No token and key provided by the tool that is required (version 3) With Zenmap for windows I found all 3 devices with their 6444 port open

    I would like to integrate these devices to Homeassistant.

    opened by boldogtanya 0
  • Attempt to change --fan_speed results in TypeError.

    Attempt to change --fan_speed results in TypeError.

    Using the CLI, with Python 3.9.2, and Midea-beautiful-air v0.9.14: Any attempt to change fan speed on a Midea U (Model: MAW08V1QWT, current FW) using --fan_speed [int] command line option and value, results in the following unhandled exception resulting in the form of a TypeError.

    Command Issued:

    midea-beautiful-air-cli set --ip 10.0.1.105 --token [token] --key [key] --mode 5 --fan-speed 60

    Traceback: Traceback (most recent call last): File "/home/meerb/.local/bin/midea-beautiful-air-cli", line 8, in sys.exit(cli()) File "/home/meerb/.local/lib/python3.9/site-packages/midea_beautiful/cli.py", line 340, in cli return function(args) File "/home/meerb/.local/lib/python3.9/site-packages/midea_beautiful/cli.py", line 263, in _run_set_command return _process_attr_arguments(args, appliance, cloud) File "/home/meerb/.local/lib/python3.9/site-packages/midea_beautiful/cli.py", line 222, in _process_attr_arguments appliance.set_state(**set_args) File "/home/meerb/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 827, in set_state self.apply(cloud) File "/home/meerb/.local/lib/python3.9/site-packages/midea_beautiful/lan.py", line 687, in apply cmd = self.state.apply_command() File "/home/meerb/.local/lib/python3.9/site-packages/midea_beautiful/appliance.py", line 605, in apply_command cmd.fan_speed = self.fan_speed File "/home/meerb/.local/lib/python3.9/site-packages/midea_beautiful/command.py", line 665, in fan_speed self.data[13] |= speed & 0b01111111 TypeError: unsupported operand type(s) for &: 'str' and 'int'

    It appears there is type confusion from an implied type conversion, although it looks as though there is the proper type declaration in the setter method, in command.py:662:

    @fan_speed.setter def fan_speed(self, speed: int) -> None: self.data[13] &= ~0b01111111 # Clear the fan speed part self.data[13] |= speed & 0b01111111

    https://github.com/nbogojevic/midea-beautiful-air/blob/fdaa8cc3692c1478132930f0f968c624feabec73/midea_beautiful/command.py#L665

    There seems a potentially related issue with the fan_speed being set periodically set to "2", while the Cool function is running. If the Midea is running with APP mode OFF, this does not seem to happen. I'll detail further in separate issue.

    bug 
    opened by blurshot28 2
Releases(v0.9.15)
  • v0.9.15(Aug 24, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    • Fix device capabilities discovery for air conditioners
    • Fix parsing of air-conditioner mode
    • Fix horizontal/vertical swing settings
    • Add more properties check
    • Detect response type and only parse supported responses
    • Remove prefix X from redacted strings
    • Fix detecting capabilities regression from 0.9.13
    • Add refresh after settings apply for air conditioners
    • Force arguments to correct type when using command line
    Source code(tar.gz)
    Source code(zip)
  • v0.9.14(Jul 13, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    • Fix device capabilities discovery for air conditioners
    • Fix parsing of air-conditioner mode
    • Fix horizontal/vertical swing settings
    • Add more properties check
    • Detect response type and only parse supported responses
    • Remove prefix X from redacted strings
    • Fix detecting capabilities regression from 0.9.13
    Source code(tar.gz)
    Source code(zip)
  • v0.9.13(Jul 11, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    • Fix device capabilities discovery for air conditioners
    • Fix parsing of air-conditioner mode
    • Fix horizontal/vertical swing settings
    • Add more properties check
    • Detect response type and only parse supported responses
    • Remove prefix X from redacted strings
    Source code(tar.gz)
    Source code(zip)
  • v0.9.12(Jun 29, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    • Fix device capabilities discovery for air conditioners
    • Fix parsing of air-conditioner mode
    • Fix horizontal/vertical swing settings
    • Add more properties check
    • Detect response type and only parse supported responses
    Source code(tar.gz)
    Source code(zip)
  • v0.9.10(Apr 12, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    • Fix device capabilities discovery for air conditioners
    • Fix parsing of air-conditioner mode
    • Fix horizontal/vertical swing settings
    • Add more properties check
    Source code(tar.gz)
    Source code(zip)
  • v0.9.8(Apr 7, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    • Fix device capabilities discovery for air conditioners
    • Fix parsing of air-conditioner mode
    • Fix horizontal/vertical swing settings
    Source code(tar.gz)
    Source code(zip)
  • v0.9.7(Apr 6, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    • Fix device capabilities discovery for air conditioners
    • Fix parsing of air-conditioner mode
    Source code(tar.gz)
    Source code(zip)
  • v0.9.6(Apr 6, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    • Fix device capabilities discovery for air conditioners
    Source code(tar.gz)
    Source code(zip)
  • v0.9.5(Apr 5, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix few sensitive data redaction bugs
    • Fix decrypting and encrypting for MSmartHome app
    Source code(tar.gz)
    Source code(zip)
  • v0.9.3(Apr 2, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    • Fix key decoding for MSmartHome app
    Source code(tar.gz)
    Source code(zip)
  • v0.9.2(Mar 26, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    • Fix missing data when using old mobile applications
    Source code(tar.gz)
    Source code(zip)
  • v0.9.1(Mar 26, 2022)

    • Support for appliance discovery when using MSmartHome app
    • Removal of homegroup step in appliance retrieval
    • Possibility to specify application name only when configuring connectivity
    • Fixes in logic of redacting confidential information
    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Feb 17, 2022)

  • v0.8.43(Feb 15, 2022)

    Breaking changes

    Parameter and property name changes:

    • id replaced with appliance_id
    • ip replaced with address
    • networks with addresses
    • supports with capabilities

    Functionality change

    • Remove automatic discovery of local network adapters and use local broadcast address instead

    Removed function discover_appliances (use find_appliances).

    Bug fixes and improvements

    • Better management of retries
    • Support for tank warning level and bucket full/removal
    • Support for pump switch flag
    • Support for vertical swing switch
    • Support for reading timer
    • Improved network discovery when network address is provided
    • Can specify timeout and number of retries for discovery
    • Can specify timeout and number of retries for state
    • Air conditioner payload parsing
    • Various fixes in parsing local network response payloads
    • Retry cloud api calls if there was HTTP communication issue
    • Correctly detect appliance address change
    • Enable discovery of appliances without cloud account
    • Added dump command line options to parse payload directly
    • Sensitive data is redacted in logs
    • Introduced significant unit test coverage (~99%)
    • Code linting (pylint)
    • Add requirement for Python 3.8 or later
    • Fix error when using cli entry point
    • Support MSmartHome app

    Full Changelog: https://github.com/nbogojevic/midea-beautiful-air/compare/v0.5.0...v0.8.43

    Source code(tar.gz)
    Source code(zip)
  • v0.8.42(Feb 13, 2022)

    Breaking changes

    Parameter and property name changes:

    • id replaced with appliance_id
    • ip replaced with address
    • networks with addresses
    • supports with capabilities

    Functionality change

    • Remove automatic discovery of local network adapters and use local broadcast address instead

    Removed function discover_appliances (use find_appliances).

    Bug fixes and improvements

    • Better management of retries
    • Support for tank warning level and bucket full/removal
    • Support for pump switch flag
    • Support for vertical swing switch
    • Support for reading timer
    • Improved network discovery when network address is provided
    • Can specify timeout and number of retries for discovery
    • Can specify timeout and number of retries for state
    • Air conditioner payload parsing
    • Various fixes in parsing local network response payloads
    • Retry cloud api calls if there was HTTP communication issue
    • Correctly detect appliance address change
    • Enable discovery of appliances without cloud account
    • Added dump command line options to parse payload directly
    • Sensitive data is redacted in logs
    • Introduced significant unit test coverage (~99%)
    • Code linting (pylint)
    • Add requirement for Python 3.8 or later
    • Fix error when using cli entry point

    Full Changelog: https://github.com/nbogojevic/midea-beautiful-air/compare/v0.5.0...v0.8.42

    Source code(tar.gz)
    Source code(zip)
  • v0.8.41(Feb 12, 2022)

    Breaking changes

    Parameter and property name changes:

    • id replaced with appliance_id
    • ip replaced with address
    • networks with addresses
    • supports with capabilities

    Functionality change

    • Remove automatic discovery of local network adapters and use local broadcast address instead

    Removed function discover_appliances (use find_appliances).

    Bug fixes and improvements

    • Better management of retries
    • Support for tank warning level and bucket full/removal
    • Support for pump switch flag
    • Support for vertical swing switch
    • Support for reading timer
    • Improved network discovery when network address is provided
    • Can specify timeout and number of retries for discovery
    • Can specify timeout and number of retries for state
    • Air conditioner payload parsing
    • Various fixes in parsing local network response payloads
    • Retry cloud api calls if there was HTTP communication issue
    • Correctly detect appliance address change
    • Enable discovery of appliances without cloud account
    • Added dump command line options to parse payload directly
    • Sensitive data is redacted in logs
    • Introduced significant unit test coverage (~99%)
    • Code linting (pylint)
    • Add requirement for Python 3.8 or later

    Full Changelog: https://github.com/nbogojevic/midea-beautiful-air/compare/v0.5.0...v0.8.41

    Source code(tar.gz)
    Source code(zip)
  • v0.8.40(Feb 1, 2022)

    Breaking changes

    Parameter and property name changes:

    • id replaced with appliance_id
    • ip replaced with address
    • networks with addresses
    • supports with capabilities

    Functionality change

    • Remove automatic discovery of local network adapters and use local broadcast address instead

    Removed function discover_appliances (use find_appliances).

    Bug fixes and improvements

    • Better management of retries
    • Support for tank warning level and bucket full/removal
    • Support for pump switch flag
    • Support for vertical swing switch
    • Support for reading timer
    • Improved network discovery when network address is provided
    • Can specify timeout and number of retries for discovery
    • Can specify timeout and number of retries for state
    • Air conditioner payload parsing
    • Various fixes in parsing local network response payloads
    • Retry cloud api calls if there was HTTP communication issue
    • Correctly detect appliance address change
    • Enable discovery of appliances without cloud account
    • Added dump command line options to parse payload directly
    • Sensitive data is redacted in logs
    • Introduced significant unit test coverage (~99%)
    • Code linting (pylint)

    Full Changelog: https://github.com/nbogojevic/midea-beautiful-air/compare/v0.5.0...v0.8.40

    Source code(tar.gz)
    Source code(zip)
Owner
Nenad Bogojevic
Architect & Expert @AmadeusITGroup
Nenad Bogojevic
Drcom-pt-client - Drcom Pt version client with refresh timer

drcom-pt-client Drcom Pt version client with refresh timer Dr.com Pt版本客户端 可用于网页认

null 4 Nov 16, 2022
Official Python client for the MonkeyLearn API. Build and consume machine learning models for language processing from your Python apps.

MonkeyLearn API for Python Official Python client for the MonkeyLearn API. Build and run machine learning models for language processing from your Pyt

MonkeyLearn 157 Nov 22, 2022
🖥️ Python - P1 Monitor API Asynchronous Python Client

??️ Asynchronous Python client for the P1 Monitor

Klaas Schoute 9 Dec 12, 2022
🐍 The official Python client library for Google's discovery based APIs.

Google API Client This is the Python client library for Google's discovery based APIs. To get started, please see the docs folder. These client librar

Google APIs 6.2k Jan 8, 2023
Python client for Arista eAPI

Arista eAPI Python Library The Python library for Arista's eAPI command API implementation provides a client API work using eAPI and communicating wit

Arista Networks EOS+ 124 Nov 23, 2022
Python API Client for Close

Close API A convenient Python wrapper for the Close API. API docs: http://developer.close.com Support: [email protected] Installation pip install clos

Close 56 Nov 30, 2022
Python client for CoinPayments API

pyCoinPayments - Python API client for CoinPayments Updates This library has now been converted to work with python3 This is an unofficial client for

James 27 Sep 21, 2022
DEPRECATED - Official Python Client for the Discogs API

⚠️ DEPRECATED This repository is no longer maintained. You can still use a REST client like Requests or other third-party Python library to access the

Discogs 483 Dec 31, 2022
The Foursquare API client for Python

foursquare Python client for the foursquare API. Philosophy: Map foursquare's endpoints one-to-one Clean, simple, Pythonic calls Only handle raw data,

Mike Lewis 400 Dec 19, 2022
python3.5+ hubspot client based on hapipy, but modified to use the newer endpoints and non-legacy python

A python wrapper around HubSpot's APIs, for python 3.5+. Built initially around hapipy, but heavily modified. Check out the documentation here! (thank

Jacobi Petrucciani 140 Dec 21, 2022
Python Client for Instagram API

This project is not actively maintained. Proceed at your own risk! python-instagram A Python 2/3 client for the Instagram REST and Search APIs Install

Facebook Archive 2.9k Dec 30, 2022
The official Python client library for the Kite Connect trading APIs

The Kite Connect API Python client - v3 The official Python client for communicating with the Kite Connect API. Kite Connect is a set of REST-like API

Zerodha Technology 756 Jan 6, 2023
A Python Client for News API

newsapi-python A Python client for the News API. License Provided under MIT License by Matt Lisivick. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRAN

Matt Lisivick 281 Dec 29, 2022
SmartFile API Client (Python).

A SmartFile Open Source project. Read more about how SmartFile uses and contributes to Open Source software. Summary This library includes two API cli

SmartFile 19 Jan 11, 2022
Python client for the Socrata Open Data API

sodapy sodapy is a python client for the Socrata Open Data API. Installation You can install with pip install sodapy. If you want to install from sour

Cristina 368 Dec 9, 2022
Python client for the Echo Nest API

Pyechonest Tap into The Echo Nest's Musical Brain for the best music search, information, recommendations and remix tools on the web. Pyechonest is an

The Echo Nest 655 Dec 29, 2022
A Python Tumblr API v2 Client

PyTumblr Installation Install via pip: $ pip install pytumblr Install from source: $ git clone https://github.com/tumblr/pytumblr.git $ cd pytumblr $

Tumblr 677 Dec 21, 2022
A super awesome Twitter API client for Python.

birdy birdy is a super awesome Twitter API client for Python in just a little under 400 LOC. TL;DR Features Future proof dynamic API with full REST an

Inueni 259 Dec 28, 2022
Unirest in Python: Simplified, lightweight HTTP client library.

Unirest for Python Unirest is a set of lightweight HTTP libraries available in multiple languages, built and maintained by Mashape, who also maintain

Kong 432 Dec 21, 2022