This is a Home Assistant Custom Component to control Alpicool, BrassMonkey, Ocean Comfort, or other compatible portable fridges via Bluetooth Low Energy (BLE).
This integration creates multiple entities in Home Assistant, allowing you to monitor and control all known aspects of your fridge.
This component was inspired by the prior work done by klightspeed's BrassMonkeyFridgeMonitor.
- Climate: A central
climateentity for each cooling zone to:- Turn the fridge on and off.
- Set the target temperature (in 1°C increments).
- Switch between
MaxandEcopreset modes. - Display the current temperature.
- Sensor: Separate
sensorentities for diagnostic data:- Battery charge percentage.
- Battery voltage.
- Switch: A
switchentity to enable or disable the fridge's control panel lock. - Number:
numberentities to configure advanced settings directly from the UI:- Compressor start delay (in minutes).
- Temperature hysteresis (return difference).
- Select:
selectentities to configure advanced settings directly from the UI:- Battery saver
This integration supports !!!untested!!! both single and dual-zone fridges.
- For dual-zone models, it will create two
climateentities (... Leftand... Right), which will both become available. - For single-zone models, it will also create two
climateentities, but the... Rightentity will remain permanentlyunavailableas the fridge does not report data for it. You can disable or hide this second entity in Home Assistant.
Easiest install is via HACS:
- Download the latest release from this repository.
- Copy the
alpicool_bledirectory into thecustom_componentsdirectory of your Home Assistant instance. - Restart Home Assistant.
Configuration is done via the Home Assistant UI.
- Navigate to Settings > Devices & Services.
- Home Assistant should automatically discover your fridge if it is powered on and nearby. If so, click Configure on the discovered device card.
- If it's not discovered automatically, click Add Integration, search for "Alpicool BLE", and follow the prompts to select your device.
- Select "dual_zone_modes" if your freezer has a Freezer or Fridge Mode. This will disable seperate controls, when the device is in fridge mode.
- Press the pairing button on the fridge, if "APP" is written on the display.
The development of this integration revealed several quirks in the Alpicool BLE protocol that required specific workarounds in the code.
- Inconsistent Protocol: The rules for calculating packet length and checksums are not consistent across all commands.
- Special Command Handling:
BIND,QUERY,SET_LEFT, andSET_RIGHTcommands are treated as special cases with a different packet structure than more complex commands likeSET. - Concatenated BLE Responses: The fridge responds to
SETcommands by sending two packets concatenated into a single BLE notification: first an echo of the sent command, followed by a full status update. The notification handler was specifically rewritten to parse this data stream correctly and ignore the echo. - Signed Byte Conversion: Temperature values are transmitted as signed 8-bit integers. The code correctly converts between negative temperature values (e.g., -20°C) and their unsigned byte representation (e.g., 236) for both sending and receiving data.