Confirm fault-decode extractor via disassembly (#38); drop dead mfg-cluster writes (#39) - #77
Merged
Merged
Conversation
…g writes (#39) RE (two independent disassembly passes, adversarially cross-checked) closes docs/10 §7.5 opens #1 and #4: - extractor 0x9b6f8ac8 reads the same 66/00 periodic status frame the driver parses (call site gates byte0==0x66 && byte1==0, same buffer into the call), and numbers wire bytes as 15+group, matching the §5a getter 0x9b6f0ee6. - the firmware's own compiled-in fault-name strings map 1:1 onto bytes 39/40/64/66. Fault byte/bit decode is now CONFIRMED; only the hardware fault-injection semantic gate remains (runbook added at docs/10 §7.6). #39: remove the two dead manufacturer-cluster writes (CompressorHz 0x0010 / OutdoorTemp 0x0011 are declared in the cluster XML but not enabled in the compiled .zap, so the writes were UNSUPPORTED_ATTRIBUTE no-ops). Outdoor temp already reaches HA via the standard ep2 TemperatureMeasurement; raw compressor Hz exposure is deferred (reaches HA coarsely via ThermostatRunningState, fully via :2323). Brings AmebaZ2 into parity with the ESP32 mfg read-back. Update the :2323 fault-console strings on both flavours and the hisense_rs485.h confidence language from PROVISIONAL to confirmed-by-disasm. Bump 1.3.16 -> 1.3.18 (10318 > last on-device 10317). Assisted-by: AI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes the two static-RE open questions behind the fault decode and removes dead telemetry-write code.
#38 — fault decode now CONFIRMED by disassembly
Two independent, adversarially cross-checked disassembly passes over the stock dump close docs/10 §7.5 opens #1 and #4:
0x9b6f8ac8) reads the same 66/00 periodic status frame the driver parses (call site gatesbyte0==0x66 && byte1==0, and the same buffer is passed in unmodified), and numbers wire bytes as15 + group, matching the §5a getter0x9b6f0ee6.The fault byte/bit map is therefore confirmed. What remains is the hardware fault-injection semantic gate (does a real fault actually fire the bit): a healthy unit reads all-clear and proves nothing. Added a turnkey runbook at docs/10 §7.6. The issue stays open as a HIL follow-up.
#39 — drop dead manufacturer-cluster writes
CompressorHz(0x0010) andOutdoorTemp(0x0011) are declared in the cluster XML but not enabled in the compiled.zap, so the writes inmatter_drivers.cppwereUNSUPPORTED_ATTRIBUTEno-ops. Removed them (brings AmebaZ2 into parity with the ESP32 mfg read-back). Outdoor temp already reaches HA via the standard ep2TemperatureMeasurement; raw compressor Hz exposure is deferred (reaches HA coarsely viaThermostatRunningState, fully via the:2323console).Also
:2323fault-console strings (both firmware flavours) andhisense_rs485.hconfidence language:PROVISIONALto confirmed-by-disasm.Test
firmware/test/run_tests.sh: all layers pass (codec, Matter/AC map, virtual round-trip).ota-release.sh lint+ fullota-release.sh build --debug: green (serial 11418 verified,FIXED_ENDPOINT_ARRAY{0x0000..0x000A} contiguous).Assisted-by: AI