Skip to content

New device support request: LG fridge 2REBGLUB_2P__ / LG GBBS322CEV #140

Description

@Skarabaen

New device support request: LG fridge 2REBGLUB_2P__ / LG GBBS322CEV

Hi,

I successfully provisioned an LG refrigerator locally with rethink-cloud. The device connects as a ThinQ2 appliance and is visible in the Rethink management UI, but it is currently not mapped to Home Assistant.

The device appears online in Rethink, but the status is shown as warning/unsupported and no Home Assistant entities are created.


Device information

appliance: LG refrigerator
consumer_model: LG GBBS322CEV
rethink_model_id: 2REBGLUB_2P__
device_type: 101
protocol: thinq2
status_in_rethink: online / warning
modem_type: BEKEN_BK7234
app_version: clip_bkn_v1.9.238
country: DE

Current behavior

The device was provisioned successfully with the Rethink Android setup app.

Rethink shows the device as:

model_id: 2REBGLUB_2P__
device_type: 101
protocol: thinq2
status: online / warning

The device communicates with the local Rethink server, but no Home Assistant mapping is created because the model is currently unsupported.


Status query

The following status query packet works with this model:

AA0EF0ED1211010000010400EBBB

After sending this packet, the refrigerator responds with a 10EB full status frame.


Packet types observed

The device sends at least these packet types:

10EB:
  meaning: full status / initial status
  observed_prefix: AA66

10EC:
  meaning: delta status
  observed_prefix: AAC6
  structure: appears to contain previous status block + current status block

10AF:
  meaning: unknown
  observed_prefix: AA0B
  note: likely compact periodic status or monitor packet

Full status packet

Example full status packet with the following known state:

fridge_setpoint: +3 °C
freezer_setpoint: -20 °C
door: closed

Packet:

AA6610EB02050601FFFFFF0201FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFFFF01010101000EBB

Confirmed setpoint mapping

The beginning of the 10EB full status packet appears to map as follows:

AA 66 10 EB 02 05 06 01 ...
             │  │
             │  └ freezer_raw
             └ fridge_raw

Confirmed formulas:

fridge_setpoint:
  full_frame_offset: 5
  formula: 8 - raw

freezer_setpoint:
  full_frame_offset: 6
  formula: -14 - raw

Observed fridge examples:

fridge_setpoint:
  raw_05: +3 °C
  raw_06: +2 °C
  raw_02: +6 °C

Observed freezer examples:

freezer_setpoint:
  raw_04: -18 °C
  raw_06: -20 °C

Confirmed examples:

AA6610EB02050401... = fridge +3 °C, freezer -18 °C
AA6610EB02060401... = fridge +2 °C, freezer -18 °C
AA6610EB02050601... = fridge +3 °C, freezer -20 °C

Confirmed door status

The door status appears to be a combined door state. It does not seem to distinguish between the fridge door and the freezer door in the currently observed packets.

Confirmed mapping:

door:
  full_frame_offset: 10
  status_block_offset: 7
  values:
    01: open
    02: closed
  note: appears to be a combined door state, not separate fridge/freezer door states

Relevant field in the full status packet:

AA 66 10 EB 02 05 06 01 FF FF FF 02 01 ...
                         ^^
                         door_raw

Observed states:

door_open:
  raw: 01

door_closed:
  raw: 02

Fridge door test

Fridge door open:

AA6610EB02050601FFFFFF0101FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFFFF01010101000FBB

Decoded:

door_raw: 01
door: open

Fridge door closed:

AA6610EB02050601FFFFFF0201FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFFFF01010101000EBB

Decoded:

door_raw: 02
door: closed

Freezer door test

Freezer door open:

AA6610EB02050601FFFFFF0101FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFFFF01010101000FBB

Decoded:

door_raw: 01
door: open

Freezer door closed:

AA6610EB02050601FFFFFF0201FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFFFF01010101000EBB

Decoded:

door_raw: 02
door: closed

Conclusion:

separate_fridge_door: not observed
separate_freezer_door: not observed
combined_door_status: confirmed

Delta status packets

The device sends 10EC frames when values change. These appear to contain two complete status blocks:

10EC_structure:
  first_block: previous status
  second_block: current status

Example delta packet during a freezer setpoint change:

AAC610EC02050401FFFFFF0101FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFF010101010002050601FFFFFF0101FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFFFF01010101005DBB

This packet appears to represent:

previous_state:
  fridge_raw: 05
  freezer_raw: 04
  fridge_setpoint: +3 °C
  freezer_setpoint: -18 °C

current_state:
  fridge_raw: 05
  freezer_raw: 06
  fridge_setpoint: +3 °C
  freezer_setpoint: -20 °C

Door delta examples

Closed to open:

previous:
02050601FFFFFF0201...

current:
02050601FFFFFF0101...

Open to closed:

previous:
02050601FFFFFF0101...

current:
02050601FFFFFF0201...

Decoded:

door_raw_01: open
door_raw_02: closed

Periodic 10AF packets

The device also sends repeated short 10AF packets. These appeared in bursts of around 11 packets at roughly 5 second intervals.

Example:

AA0B10AF000046060590BB

Parsed:

AA 0B 10 AF 00 00 46 06 05 90 BB

At the time of this packet, the known setpoints were:

fridge_setpoint: +3 °C
freezer_setpoint: -20 °C

The last two payload bytes appear to match the confirmed raw setpoint values:

freezer_raw: 06
fridge_raw: 05

Using the confirmed formulas:

freezer_raw_06: -20 °C
fridge_raw_05: +3 °C

Possible interpretation:

10AF:
  likely_contains:
    freezer_raw: payload[-2]
    fridge_raw: payload[-1]
  purpose: unknown
  possible_meaning: compact periodic status / monitor packet

The meaning of the byte 46 is still unknown.


Additional example packets

Full status, fridge +3 °C, freezer -18 °C

AA6610EB02050401FFFFFF0201FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFF01010101000CBB

Decoded:

fridge_raw: 05
fridge_setpoint: +3 °C

freezer_raw: 04
freezer_setpoint: -18 °C

door_raw: 02
door: closed

Full status, fridge +2 °C, freezer -18 °C

AA6610EB02060401FFFFFF0201FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFF01010101000FBB

Decoded:

fridge_raw: 06
fridge_setpoint: +2 °C

freezer_raw: 04
freezer_setpoint: -18 °C

door_raw: 02
door: closed

Full status, fridge +3 °C, freezer -20 °C, door closed

AA6610EB02050601FFFFFF0201FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFFFF01010101000EBB

Decoded:

fridge_raw: 05
fridge_setpoint: +3 °C

freezer_raw: 06
freezer_setpoint: -20 °C

door_raw: 02
door: closed

Full status, fridge +3 °C, freezer -20 °C, door open

AA6610EB02050601FFFFFF0101FFFFFF00FFFFFF0000FFFFFFFFFFFFFFFF010101FF02FFFFFFFFFFFFFFFFFF01FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0078FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0005FFFFFFFFFF01010101000FBB

Decoded:

fridge_raw: 05
fridge_setpoint: +3 °C

freezer_raw: 06
freezer_setpoint: -20 °C

door_raw: 01
door: open

Suggested initial decoder

A first implementation for 2REBGLUB_2P__ could likely reuse parts of the existing fridge logic, but with larger status blocks.

model_id: 2REBGLUB_2P__
device_type: 101
protocol: thinq2

full_status:
  packet_type: 10EB
  frame_prefix: AA66

delta_status:
  packet_type: 10EC
  frame_prefix: AAC6
  structure: previous_status + current_status

fields:
  fridge_setpoint:
    full_frame_offset: 5
    formula: 8 - raw

  freezer_setpoint:
    full_frame_offset: 6
    formula: -14 - raw

  door:
    full_frame_offset: 10
    status_block_offset: 7
    values:
      01: open
      02: closed
    note: combined door state, not separate fridge/freezer door states

optional:
  compact_status_10AF:
    freezer_raw: payload[-2]
    fridge_raw: payload[-1]

Suggested decoding logic

Pseudo logic for 10EB:

if frame_type == 10EB:
    fridge_raw = frame[5]
    freezer_raw = frame[6]
    door_raw = frame[10]

    fridge_setpoint = 8 - fridge_raw
    freezer_setpoint = -14 - freezer_raw

    if door_raw == 0x01:
        door = "open"
    elif door_raw == 0x02:
        door = "closed"

Pseudo logic for 10EC:

if frame_type == 10EC:
    previous_status = first status block
    current_status = second status block

    decode current_status using the same field mapping as 10EB

Pseudo logic for 10AF:

if frame_type == 10AF:
    freezer_raw = payload[-2]
    fridge_raw = payload[-1]

    freezer_setpoint = -14 - freezer_raw
    fridge_setpoint = 8 - fridge_raw

The 10AF packet should probably be treated as optional until its meaning is better understood.


Open questions

  1. What is the exact status block length for 2REBGLUB_2P__?
  2. Can the existing fridge decoder be generalized for this larger 10EB / 10EC payload format?
  3. Is 10AF known from other LG ThinQ2 appliances?
  4. Does this model only expose one combined door state, or is there a hidden separate fridge/freezer door field elsewhere?
  5. Are there additional fields for:
    • current fridge temperature
    • current freezer temperature
    • express cool / super cool
    • express freeze / super freeze
    • alarm state
    • diagnostic state
    • compressor state
    • defrost state
    • energy saving mode
  6. What does the 46 byte in the observed 10AF packet represent?

Summary

Confirmed:

device:
  model_id: 2REBGLUB_2P__
  device_type: 101
  protocol: thinq2

packets:
  10EB: full status
  10EC: delta status
  10AF: unknown compact periodic status candidate

confirmed_fields:
  fridge_setpoint:
    offset: 5
    formula: 8 - raw

  freezer_setpoint:
    offset: 6
    formula: -14 - raw

  door:
    offset: 10
    raw_01: open
    raw_02: closed
    note: combined door state

Unknown:

10AF:
  meaning: unknown
  likely_contains:
    freezer_raw: payload[-2]
    fridge_raw: payload[-1]

unknown_fields:
  current_fridge_temperature
  current_freezer_temperature
  super_cool
  super_freeze
  alarm_state
  compressor_state
  defrost_state
  separate_fridge_door
  separate_freezer_door

I can provide more captures if needed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions