node-red-contrib-midea-local 0.1.2
Node-RED nodes for local control of Midea smart air conditioners
node-red-contrib-midea-local
Node-RED nodes for local network control of Midea smart air conditioners. No cloud dependency at runtime — everything talks directly to the device over your LAN.
Based on midea-local.
Install
cd ~/.node-red
npm install node-red-contrib-midea-local
Then restart Node-RED. The nodes will appear in the midea category in the palette.
Nodes
midea device (config)
Configuration node that manages the connection to a single Midea AC device.
- Scan Network — discovers Midea devices on your local network via UDP broadcast. If your network is segmented into VLANs or subnets (broadcast cannot cross those boundaries), enter the device IP first and press Scan Network to probe that device directly
- Authorize — one-time cloud authentication for V3 devices to fetch the device token and key. Your Midea account credentials are used only during this step and are never stored
- Auto-reconnect — connection is automatically re-established with exponential backoff (1s → 60s)
midea in
Reads the current device state when triggered by an input message. Use an inject node upstream to poll at your desired interval.
Output msg.payload:
| Property | Type | Description |
|---|---|---|
powerState |
boolean | Power on/off |
targetTemperature |
number | Set temperature in °C |
indoorTemperature |
number | null | Measured indoor temp |
outdoorTemperature |
number | null | Measured outdoor temp |
operationalMode |
string | "auto", "cool", "dry", "heat", "fan_only" |
fanSpeed |
string | "auto", "max", "high", "medium", "low", "silent" |
swingMode |
string | "off", "vertical", "horizontal", "both" |
turboMode |
boolean | Turbo on/off |
ecoMode |
boolean | Eco on/off |
sleepMode |
boolean | Sleep on/off |
indoorHumidity |
number | null | Indoor humidity % |
displayOn |
boolean | null | LED display state |
filterAlert |
boolean | null | Filter needs cleaning |
realTimePower |
number | null | Current power draw (W) |
midea out
Sends commands to the device. Set properties in msg.payload — only specified properties are changed.
Example — turn on and cool to 22°C:
{
"powerState": true,
"operationalMode": "cool",
"targetTemperature": 22
}
Example — just change the fan speed:
{
"fanSpeed": "low"
}
Accepted properties:
| Property | Type | Values |
|---|---|---|
powerState |
boolean | true / false |
targetTemperature |
number | 16.0 – 30.0 (0.5 steps) |
operationalMode |
string | number | "auto", "cool", "dry", "heat", "fan_only" |
fanSpeed |
string | number | "auto", "max", "high", "medium", "low", "silent" |
swingMode |
string | number | "off", "vertical", "horizontal", "both" |
turboMode |
boolean | Enable turbo |
ecoMode |
boolean | Enable eco |
sleepMode |
boolean | Enable sleep |
fahrenheit |
boolean | Display in Fahrenheit |
displayOn |
boolean | Toggle LED display |
beep |
boolean | Beep on command |
String values are case-insensitive. Numeric enum values are also accepted.
Credits
All reverse-engineering and protocol analysis credit goes to Tucker Kern and midea-msmart.
License
MIT