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:
- The fallback logic is working correctly - when
model_sku is None, fallbacks display properly
- The root cause is
model_sku being None/empty - not a consumer integration issue
- IndoorUnit works correctly - suggesting selective deserialization issue
- 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.
Problem
When using quilt-hp-python to deserialize system snapshots from the Quilt API, the
model_skufield isNoneor empty for:In contrast, IndoorUnit devices correctly populate their
model_skuvalues.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:
model_skuis None, fallbacks display properlymodel_skubeing None/empty - not a consumer integration issueDesired Behavior
OutdoorUnit.from_proto()andController.from_proto()should correctly deserialize themodel_skufield from the API's protobufoutdoor_unit_hardwareandcontroller_hardwarefields, matching the behavior ofIndoorUnit.Next Steps
This likely involves:
model_skuvalue (not overwriting with None)Would appreciate guidance on where the deserialization might be failing so we can debug further or provide a fix.