Skip to content

OutdoorUnit and Controller model_sku not being deserialized from API #4

@eman

Description

@eman

Problem

When using quilt-hp-python to deserialize system snapshots from the Quilt API, the model_sku field is None or empty for:

  • OutdoorUnit devices
  • Controller devices (dials)

In contrast, IndoorUnit devices correctly populate their model_sku values.

This causes Home Assistant devices to display fallback names like "Quilt Outdoor Unit" and "Quilt Dial" instead of the actual product SKU (e.g., "QHP-1234").

Investigation Findings

After debugging with v0.2.2, I confirmed:

  1. The fallback logic is working correctly - when model_sku is None, fallbacks display properly
  2. The root cause is model_sku being None/empty - not a consumer integration issue
  3. IndoorUnit works correctly - suggesting selective deserialization issue
  4. No fix in v0.2.2 - checked commits v0.2.1..v0.2.2; no changes to hardware map deserialization

Desired Behavior

OutdoorUnit.from_proto() and Controller.from_proto() should correctly deserialize the model_sku field from the API's protobuf outdoor_unit_hardware and controller_hardware fields, matching the behavior of IndoorUnit.

Next Steps

This likely involves:

  • Verifying the API is returning the hardware fields in snapshots
  • Checking if quilt-hp-python is correctly extracting hardware info from the protobuf message
  • Ensuring stream updates preserve the model_sku value (not overwriting with None)

Would appreciate guidance on where the deserialization might be failing so we can debug further or provide a fix.

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