Subtype names act as filters that return the SRV/TXT record pairs describing a given function set. For example, if a device such as an electricity meter also serves gas-metering data via mirroring, that device will register two subtype names; one for providing metering data and one for the capability to receive metering data to mirror. A client device can search for instances of a given function set by first performing a subtype query and then interrogating the Device Capabilities URIs (contained in the returned TXT records) to determine the URIs for that function set. Alternately, it may use a path returned directly by the server as described below.
IEEE 2030.5 uses an extended form of subtype query in order to support fine-grained resource discovery and conserve bandwidth. Using this method, a server will return a separate SRV/TXT record pair for each function set that it supports. The name of the DNS-SD PTR record is equivalent to the query argument and the value of the PTR record is the Service Instance Name of an SRV/TXT record pair matching the query.
A server SHALL register a PTR record with a subtype name as defined below for each function set that it advertises for discovery. In addition, the server SHALL register a unique SRV/TXT record pair with an
<Instance> as defined in 7.2 for each function set that is referenced by the subtype PTR record.
All SRV records registered on a given device SHALL contain identical values. The port value contained in the SRV record SHALL be specified for the default (http) scheme. If a secure connection is required for the function set or resource, then the https key SHALL be present in the TXT record as specified in 7.4.
The server SHALL register exactly one PTR record with the name "_smartenergy._tcp.site.". The SRV/TXT record pair referenced by this PTR record refers to the server itself. Enumerating the set of all IEEE 2030.5 servers in the HAN is STRONGLY DISCOURAGED except for diagnostic purposes. Instead, devices SHOULD use subtype queries as described in this clause to enumerate IEEE 2030.5 function sets.
The TXT record of the SRV/TXT record pair referenced by a subtype PTR record SHALL conform to the definition given in 7.4 and SHALL contain the relative reference for the base path of the function set that corresponds to the specified subtype. The key=value pairs other than path and https SHOULD be identical for all TXT records registered on a single device.
Subtype names are composed of a subtype string, followed by "_sub._smartenergy._tcp.site.". Subtype strings SHALL NOT begin with an underscore (see Table 17). For example, the subtype name for the meter Usage Point function set shall be composed as "upt._sub._smartenergy._tcp.site.". Other subtype names SHALL (except as noted below) be composed per the meter Usage Point example.
Table 17 lists the defined service subtype strings and their corresponding IEEE 2030.5 function sets.
Table 17 —Service subtype strings and their corresponding IEEE 2030.5 function sets
Subtype | Device capabilities field name | IEEE 2030.5 function set |
bill | CustomerAccountListLink | Billing |
derp | DERProgramListLink | Distributed Energy Resources |
dr | DemandResponseProgramListLink | Demand Response and Load Control |
edev | EndDeviceListLink | End Device |
file | FileListLink | File Download |
msg | MessagingProgramListLink | Messaging |
mup | MirrorUsagePointListLink | Metering Mirror |
ppy | PrepaymentListLink | Prepayment |
rsps | ResponseSetListLink | Response |
sdev | SelfDeviceLink | Self Device |
tm | TimeLink | Time |
tp | TariffProfileListLink | Pricing |
upt | UsagePointListLink | Metering |
To promote search efficiency, servers that support the End Device function set SHALL register a unique PTR, SRV, and TXT record for each remote device that they support. In this case, the subtype name SHALL consist of the string edev, concatenated with a hyphen and the remote device’s SFDI (see 6.3.3), and followed by "_sub._smartenergy._tcp.site.". For example, a server having an EndDevice resource for the remote device with SFDI 222222222228 would register a subtype PTR record named "edev- 222222222228._sub._smartenergy._tcp.site.".
The <Instance> portion of the Service Instance Name of the associated SRV/TXT record pair for this subtype PTR SHOULD consist of three parts, concatenated by hyphens. The first part SHALL consist of an identifier unique across End Device instances on this server. The second part SHALL be the edev subtype string. The third part SHOULD be the server’s SFDI. For example, a server having the SFDI "000001111114" would register SRV and TXT records having the Service Instance Name "127-edev- 000001111114._smartenergy._tcp.site.", where 127 is an arbitrary decimal number unique to this specific End Device instance on this server. This name would be referenced by the subtype PTR record described in the example above. The TXT record with this name would contain the path to the EndDevice resource of the remote device.