Skip to content

Treat an empty answer to a property read as no value - #179

Merged
michaelarnauts merged 1 commit into
masterfrom
empty-property-response
Oct 20, 2026
Merged

michaelarnauts merged 1 commit into
masterfrom
empty-property-response

Conversation

@michaelarnauts

@michaelarnauts michaelarnauts commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

With get_node_info reading one property at a time (#171), a ComfoConnect Pro now tells about its own node (node 20, product 222), seen in discussion #55: name ComfoConnectPro, serial number, firmware R1.0.5, hardware version 1, product variant 0. But for the two properties it doesn't have, the model (0x08) and the article number (0x0B), it answers with result OK and no message, where a LAN C answers with an RMI error:

TX ... nodeId: 20, message: "\001\001\001\020\010"   (NODE property 0x08, the model)
RX ... 0822200c                                         (CnRmiResponse, reference 12, no message)

That decoded to an empty string, so list-nodes showed model: and the model and article number of the Pro were "" instead of None; a number would have become 0. A node that sends no value doesn't have the property, so get_single_property (and so get_property) now raises a ComfoConnectRmiError for an empty message, like when a node answers with an RMI error. get_node_info makes such a property None, and raises when none of them has a value.

This is also why the combined request in 0.4.4 got an empty answer from the Pro: it lacks one of the properties.

Testing

  • test_get_single_property_without_value (a number, a string and a version) and test_get_node_info_of_node_without_values.
  • pytest, pylint (10/10) and black pass.
  • list-nodes against a LAN C with a ComfoAir Q450 shows the same info for both nodes as before: no real property answers with an empty message there.

🤖 Generated with Claude Code

The node of a ComfoConnect Pro answers a property read with OK, but without
a message. That decoded to an empty string or 0, so its node info would show
firmware R0.0.0 and an empty serial number. A node that sends no value
doesn't have the property, so raise a ComfoConnectRmiError then, like for a
node that answers with an RMI error; get_node_info makes it None.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@michaelarnauts

Copy link
Copy Markdown
Owner Author

Closing for now: the empty answer was to the combined request, probably because the Pro lacks one of the properties, like a LAN C answers with an error. We'll see what the Pro answers to single reads (#171) first, and reopen this if it answers a missing property with an empty message too.

@michaelarnauts
michaelarnauts merged commit 73defe6 into master Oct 20, 2026
8 checks passed
@michaelarnauts
michaelarnauts deleted the empty-property-response branch October 20, 2026 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant