Skip to content

Troubleshooting

Niklas Linz edited this page Oct 3, 2026 · 1 revision

Troubleshooting

First step for almost everything: run the command with --debug, or set the de.mirranet.midea logger to FINEST. You'll see every frame that goes out and comes back.

discover finds nothing

  • The computer and the unit must be on the same network segment. Broadcasts don't cross VLANs or routers.
  • Guest Wi-Fi and "client isolation" on access points block them too.
  • Ask the unit directly: java -jar midea-ac-1.0.0.jar keys --ip <address>. That uses unicast and works as long as UDP ports 6445 and 20086 get through.
  • Look the unit up in your router's DHCP list to get its address.

Give the unit a fixed DHCP lease. Its IP is part of your configuration.

"No working token/key found"

  • Try the account of the app the unit is really paired with: --cloud msmart, --cloud nethome or --cloud mideaair.
  • Try without --cloud (shared account), or the other way round.
  • Make sure the unit is paired and online in the app.
  • If the cloud login itself fails, check user name and password in the app first.

MideaException.Authentication

The unit rejected the handshake.

  • Token and key belong to a different unit, or were mixed up.
  • The unit was reset or paired again in the app since you fetched them. Fetch them again.
  • --protocol is wrong. Use what discovery reported.

MideaException.Timeout on refresh()

  • Wrong IP, or the unit lost its Wi-Fi connection.
  • Another program is connected to the unit. Many modules only accept one TCP connection; stop Home Assistant, the other client, or a second instance of your own code.
  • The unit is slow to answer. Raise responseTimeout.

The first refresh() takes very long

That's expected: the client probes which optional queries the unit supports. See How it behaves. Later refreshes are fast as long as you keep the same client instance.

Energy figures look absurd

Units encode energy differently. Try another powerAnalysisMethod (2, 3, 12 or 101). See Connecting.

Values are null

Many units don't report humidity, energy or service data. If getIndoorHumidity() stays null but the Midea app shows humidity, open an issue with the --debug output.

The display turns on when I switch it off

The firmware only knows "toggle". The client toggles only when the reported state differs from what you ask for, so a wrong reported state leads to a wrong toggle. If status shows the display state incorrectly but isScreenDisplayAlternate() is right, your unit handles the display through the new protocol: use setScreenDisplayAlternate() instead.

My unit isn't supported

Not supported:

  • units using the "BB" sub-protocol (for example model 23096633)
  • very old modules with protocol V1
  • Midea appliances other than air conditioners

If your unit is a regular air conditioner and still misbehaves, open an issue with:

  • the model code from discovery (model=...)
  • the protocol version
  • the --debug output of status, with token and key removed

Clone this wiki locally