Use zeroconf UUID if not available via IPP properties#33991
Conversation
| if info[CONF_UUID] is not None: | ||
| self.discovery_info[CONF_UUID] = info[CONF_UUID] |
There was a problem hiding this comment.
Why only do it sometimes? Are they the same? Could it be that we only detect one at some point and not another, so same printer is identified by 2 unique IDs?
There was a problem hiding this comment.
so printer manufacturer decide what IPP spec and the device id property is recommended in 2.0 and required in 2.1 but that means the bonjour could provide an UUID but it not be available in the actual IPP data
There was a problem hiding this comment.
So why not always use bonjour ?
There was a problem hiding this comment.
id have to check specs again but im not sure bonjour definition requires it either. Manufacturers like to play fast and loose with specs.
There was a problem hiding this comment.
so according to IPP Anywhere 1.0 specthe values should match (though thats assuming manufacturer follows spec):
4.2.3.8 UUID
The REQUIRED "UUID" key provides the value of the "printer-uuid" Printer Description
attribute [RFC4122] [PWG 5100.13] without the leading "urn:uuid:". For example, if a
Printer reports a "printer-uuid" value of:
urn:uuid:12345678-9ABC-DEF0-1234-56789ABCDEF0
The "UUID" key will have a value of:
12345678-9ABC-DEF0-1234-56789ABCDEF0
Note: The "printer-uuid" value is used instead of "device-uuid" because DNS-SD identifies
services and not devices.
There was a problem hiding this comment.
This printer-uuid property also was added as an extension PWG 5100.13 and isnt part if IPP 2.0,2.1 or 2.2 so that complicates the playing field
Breaking change
Proposed change
Type of change
Example entry for
configuration.yaml:# Example configuration.yamlAdditional information
Checklist
black --fast homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all..coveragerc.The integration reached or maintains the following Integration Quality Scale: