2.2.102. Sound Switch Command Class, version 1¶
The Sound Switch Command Class is used to manage nodes with a speaker or sound notification capability. It can be used for a doorbell, alarm clock, siren or any device issuing sound notifications.
2.2.102.1. Terminology¶
A Sound Switch is a sound notification device with pre-recorded tones. A tone can be a short sound effect as well as an entire song. The volume setting can be configured and the node will subsequently play tones using the configured volume for any tone. A default tone can also be configured, allowing the Sound Switch to play same sound when controlled by a node without the ability to select between tones.
A Sound Switch node advertises a name and duration for each tone. This information is used to guide an end-user in its tone selection and helps controlling nodes to know when the tone is finished playing.
2.2.102.2. Compatibility Considerations¶
The Sound Switch Command Class is an actuator control Command Class. Refer to Section 2.1.6.
\requirement{CC:0079.01.00.21.001}{0}
A node supporting this Command Class MUST support at least 1 tone.
\requirement{CC:0079.01.00.21.002}{0}
The implemented tone identifier values MUST be in a sequence starting from 1, i.e. a node supporting 10 tones MUST accept Tone Identifiers in the range 1..10.
2.2.102.3. Sound Switch Tones Number Get Command¶
This command is used to request the number of tones supported by the receiving node.
\requirement{CC:0079.01.01.11.001}{0}
The Sound Switch Tones Number Report Command MUST be returned in response to this command.
\requirement{CC:0079.01.01.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0079.01.01.11.003}{0}
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_TONES_NUMBER_GET (0x01) |
|||||||
2.2.102.4. Sound Switch Tones Number Report Command¶
This command is used to advertise the number of tones supported by the sending node.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_TONES_NUMBER_REPORT (0x02) |
|||||||
Supported Tones |
|||||||
Supported Tones (8 bits)
\requirement{CC:0079.01.02.11.001}{0}
This field MUST be set to the total amount of supported tones.
\requirement{CC:0079.01.02.11.003}{0}
This field MUST be in the range 1..254.
2.2.102.5. Sound Switch Tone Info Get Command¶
This command is used to query the information associated to a tone at a supporting node.
\requirement{CC:0079.01.03.11.001}{0}
The Sound Switch Tone Info Report Command MUST be returned in response to this command.
\requirement{CC:0079.01.03.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0079.01.03.11.003}{0}
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_TONE_INFO_GET (0x03) |
|||||||
Tone Identifier |
|||||||
Tone Identifier (8 bits)
This field is used to specify the requested Tone Identifier.
\requirement{CC:0079.01.03.11.004}{0}
The implemented tone identifier values MUST be in a sequence starting from 1, i.e. a node supporting 10 tones MUST accept Tone Identifiers in the range 1..10.
\requirement{CC:0079.01.03.11.005}{0}
A sending node MUST specify a Tone Identifier that is supported by a receiving node, i.e. in the range 1..{Total number of supported tones}.
\requirement{CC:0079.01.03.11.006}{0}
A node receiving this command for an unsupported Tone Identifier or for Tone Identifier 0x00 MUST return a zero duration and a zero length name.
2.2.102.6. Sound Switch Tone Info Report Command¶
This command is used to advertise the information associated to a tone at a supporting node.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_TONE_INFO_REPORT (0x04) |
|||||||
Tone Identifier |
|||||||
Tone Duration 1 |
|||||||
Tone Duration 2 |
|||||||
Name Length |
|||||||
Name 1 |
|||||||
… |
|||||||
Name N |
|||||||
Tone Identifier (8 bits)
This field is used to advertise the Tone Identifier for which the associated information is being advertised.
Tone Duration (16 bits)
This field is used to advertise duration of the Tone Identifier.
\requirement{CC:0079.01.04.11.001}{0}
This field MUST indicate the time in seconds it takes to play the actual Tone Identifier.
\requirement{CC:0079.01.04.11.002}{0}
This field MUST be set to 0 if the Tone Identifier is set to 0x00 or a value higher than the total number of supported tones advertised in the Sound Switch Tones Number Report Command.
Name Length (8 bits)
This field indicates the length in bytes of the Name field.
\requirement{CC:0079.01.04.11.003}{0}
This field MUST be in the range 1..255 if the Tone Identifier is supported.
\requirement{CC:0079.01.04.11.004}{0}
This field MUST be set to 0 if the Tone Identifier is set to 0x00 or a value higher than the total number of supported tones advertised in the Sound Switch Tones Number Report Command.
Name (N bytes)
This field is used to indicate the assigned name or label for the actual Tone Identifier.
\requirement{CC:0079.01.04.11.005}{0}
The length of this field in bytes MUST comply with the advertised value in the Name Length field. This field MUST be omitted if the Name Length field is set to 0.
\requirement{CC:0079.01.04.11.006}{0}
The field MUST be formatted as a byte array with no zero termination.
\requirement{CC:0079.01.04.11.007}{0}
The characters MUST be encoded in UTF-8 format.
2.2.102.7. Sound Switch Configuration Set Command¶
This command is used to set the configuration for playing tones at the supporting node.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_CONFIGURATION_SET (0x05) |
|||||||
Volume |
|||||||
Default Tone Identifier |
|||||||
Volume (8 bits)
This field is used to specify the volume at which the node will play tones.
The encoding of the Volume field MUST be according to Table 2.528.
Value |
Description |
|---|---|
0 (0x00) |
\requirementNS{CC:0079.01.05.11.002}{0} This value MUST indicate an Off/Mute volume setting (0%) |
1..100 (0x01..0x64) |
\requirementNS{CC:0079.01.05.11.003}{0} These values MUST indicate the actual volume setting from respectively 1% to 100%. A supporting node MAY implement fewer than 100 hardware level. In this case, mapping of hardware levels MUST be monotonous, i.e. a higher value MUST be mapped to either the same or a higher hardware level |
255 (0xFF) |
\requirementNS{CC:0079.01.05.11.004}{0} This value MUST indicate to restore most recent non-zero volume setting. This value MUST be ignored if the current volume is not zero (0x00). This value MAY be used to set the Default Tone Identifier and do not modify the volume setting |
\requirement{CC:0079.01.05.11.005}{0}
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.
Default Tone Identifier (8 bits)
This field is used to specify the Default Tone. This Tone will be played if receiving the Sound Switch Tone Play Set Command for an unsupported value or for the 0xFF value.
\requirement{CC:0079.01.05.11.006}{0}
The value 0x00 MUST indicate that the receiving node MUST NOT update its current default tone and the command is sent to configure the volume only.
\requirement{CC:0079.01.05.11.007}{0}
Values in the range 1..{Total number of supported tones} MUST indicate that the receiving node MUST use the specified Identifier as Default Tone.
\requirement{CC:0079.01.05.11.008}{4}
Values higher than the Total number of supported tones advertised in the Sound Switch Tones Number Report Command MUST be ignored by a receiving node.
2.2.102.8. Sound Switch Configuration Get Command¶
This command is used to request the current configuration for playing tones at the supporting node.
\requirement{CC:0079.01.06.11.001}{0}
The Sound Switch Configuration Report Command MUST be returned in response to this command.
\requirement{CC:0079.01.06.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0079.01.06.11.003}{0}
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_CONFIGURATION_GET (0x06) |
|||||||
2.2.102.9. Sound Switch Configuration Report Command¶
This command is used to advertise the current configuration for playing tones at the sending node.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_CONFIGURATION_REPORT (0x07) |
|||||||
Volume |
|||||||
Default Tone Identifier |
|||||||
Volume (8 bits)
This field is used to advertise the current volume setting at the sending node.
\requirement{CC:0079.01.07.11.001}{0}
This field MUST be in the range 0..100. Values in the range 0..100 MUST indicate the current volume percentage.
Default Tone Identifier (8 bits)
This field is used to advertise the current configured Default Tone. This Tone Identifier will be played if receiving a Sound Switch Tone Play Set Command for an unsupported value or for the 0xFF value.
\requirement{CC:0079.01.07.11.002}{0}
This field MUST be in the range 1..{Total number of supported Tones}.
2.2.102.10. Sound Switch Tone Play Set Command¶
This command is used to instruct a supporting node to play (or stop playing) a tone.
\requirement{CC:0079.01.08.11.001}{0}
The supporting node MUST play the specified tone immediately when receiving this command.
\requirement{CC:0079.01.08.11.002}{0}
A node already playing a tone MUST interrupt the current tone and start playing the tone specified in this command.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_TONE_PLAY_SET (0x08) |
|||||||
Tone Identifier |
|||||||
Tone Identifier (8 bits)
\requirement{CC:0079.01.08.11.003}{0}
This field is used to specify the tone that the receiving node MUST play.
\requirement{CC:0079.01.08.11.004}{0}
This field MUST be encoded according to Table 2.529.
Value |
Description |
|---|---|
0x00 |
\requirementNS{CC:0079.01.08.11.005}{0} No Tone MUST be played. A supporting node MUST stop playing any tone when receiving this value. |
0x01..0xFE |
\requirementNS{CC:0079.01.08.11.006}{0} A supporting node MUST play the specified Tone identifier using the configured volume setting. A node receiving a non-supported Tone Identifier (higher than the Total number of supported tones) MUST play the default tone using the configured volume setting. |
0xFF |
\requirementNS{CC:0079.01.08.11.007}{0} The supporting node MUST play the default tone using the configured volume setting. |
2.2.102.11. Sound Switch Tone Play Get Command¶
This command is used to request the current tone being played by the receiving node.
\requirement{CC:0079.01.09.11.001}{0}
The Sound Switch Tone Play Report Command MUST be returned in response to this command.
\requirement{CC:0079.01.09.11.002}{0}
This command MUST NOT be issued via multicast addressing.
\requirement{CC:0079.01.09.11.003}{0}
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_TONE_PLAY_GET (0x09) |
|||||||
2.2.102.12. Sound Switch Tone Play Report Command¶
This command is used to advertise the current tone being played by the sending node.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_SOUND_SWITCH (0x79) |
|||||||
Command = SOUND_SWITCH_TONE_PLAY_REPORT (0x0A) |
|||||||
Tone Identifier |
|||||||
Tone Identifier (8 bits)
\requirement{CC:0079.01.0A.11.001}{0}
This field MUST indicate which tone is currently being played by the sending node. This field MUST be in the range 0..{Total number of supported tones}.
\requirement{CC:0079.01.0A.11.002}{0}
The value 0 MUST indicate that no Tone is currently being played.
This field MUST be set to 0x00 by a sending node if the configured volume is 0x00 (muted).
\requirement{CC:0079.01.0A.11.003}{0}
Values in the range 1..{Total number of supported tones} MUST indicate the Tone that is currently being played.
\requirement{CC:0079.01.0A.11.004}{0}
All other values are reserved and MUST NOT be used by a sending node. Reserved values MUST be ignored by a receiving node.