Releases: maxmirazh33/aircore
Release list
1.0.6
Fixed
- The compressor sensors no longer go empty while the air conditioner is off. The load byte keeps a residual value for a while after the unit stops, and a non-zero value on a powered-off device was treated as a foreign byte layout, so both compressor entities were left unknown several times a day. A device without power cannot run its compressor, whatever the byte means, so it is now reported as idle with a zero load.
1.0.5
Fixed
- A reply that answers another request is no longer decoded. The transport is UDP and two blocks are polled in turn, settings and sensors. A late sensor reply landing in the middle of a settings read passed the length and type checks and was decoded as settings, producing a plausible but wrong state: turbo, ionizer, display and a target of 36 degrees appearing at once and going away on the next poll. The device echoes the selector, so the block is now identified before it is decoded.
1.0.4
Fixed
- The coil temperature is no longer taken from a reply that needed retries. On an unstable link the device answers late with a packet whose sensor block still holds stale bytes: the coil jumped to forty-odd degrees for two or three polls and returned on its own. Both jumps in a day of history fell exactly into the windows where the compressor state went unknown, so a reading that did not arrive on the first try now leaves the previous value in place.
1.0.3
Fixed
- Louvre position maps were wrong in both directions. Vertically, swing sits at 0 while the map placed it at 6 and knew nothing about 0, so a swinging louvre was reported as auto and a request to swing came back as auto again. Horizontally the two values were inverted: 0 swings, 1 holds the louvre still. Both maps were verified against a device.
- A sent change now shows up in the interface at once. The coordinator only requested a refresh after a successful write, and that request is debounced by ten seconds — until it fired the card kept the previous value and the command looked ignored.
1.0.2
Fixed
A mode arriving together with a target temperature is now applied. Home Assistant allows a single set_temperature call to carry hvac_mode, and leaves it to the integration to act on — this one dropped it. An automation switching a unit on that way only moved the setpoint: the unit beeped, having accepted the packet, and stayed off. Both values now travel in one packet, and an off mode in such a call switches the unit off instead of merely retargeting it.
Requires Home Assistant 2024.8 or newer.
1.0.1
Fixed
A request the device did not answer is now repeated, on reads as well as on commands. Communication is UDP over WiFi and single packets go missing — over one night three units lost 51 polls between them. Previously only a device answering "busy" was retried, so a lost packet took the entities to unavailable until the next poll, and a lost command was reported as refused although the unit had never heard it.
Changed
Fan speeds are ordered by airflow — auto, mute, low, medium, high, turbo — instead of listing the ordinary speeds first and the special ones after them.
Requires Home Assistant 2024.8 or newer.
1.0.0
Broadlink air conditioners in Home Assistant over the device's own UDP protocol — no cloud, no MQTT broker, no bridge.
Climate
Modes, target temperature in 0.5° steps, six fan speeds including mute and turbo, seven louvre positions and horizontal swing.
Beyond the settings
The refrigeration circuit is reported as well: whether the compressor is actually running, its output as a percentage and the coil temperature. A reading that contradicts the unit's state is dropped rather than shown.
Also created
Switches for display, sleep mode, ionizer, self-clean, dry after shutdown and the remote thermometer (iFeel). Mode, setpoint, fan speed and both swings are exposed as diagnostic sensors, because Home Assistant keeps no history for climate attributes beyond temperature.
Setup
Devices are discovered on the network by the config flow; manual entry asks for the address only and reads the MAC from the device. Polling rates, response timeout, extra sensors and packet logging are options.
Supported
Any unit built on the Broadlink module of type 0x4E2A: AUX, Zanussi, Ballu, Rovex, Tornado, Electrolux, Dunham, Rcool, Akai, Kenwood, Hyundai, Centek, Roda, Shivaki. Compressor fields were derived on Zanussi Venezia; on other brands they may mean something else, and contradictory readings are discarded.
Requires Home Assistant 2024.8 or newer.