Audio-based load control system
A scalable, distributed load control system for home automation based on a network of microphones may include control devices (e.g., load control devices) that may include microphones for monitoring the system and communicating audio data to a cloud server for processing. The control devices of the load control system may receive a single voice command and may be configured to choose one of the load control devices to transmit the voice command to the cloud server. The load control devices may be configured to receive a voice command, control a connected load according to the voice command if the voice command is a validated command, and transmit the voice command to a voice service in the cloud if the voice command is not a validated command. The voice service to which the load control devices transmit audio data to may be selectable.
1 . A load control device for controlling an amount of power to a lighting load, the load control device comprising:
a microphone for receiving voice commands;
a memory;
a communication circuit;
a hot terminal configured to be coupled to an alternating current (AC) power source;
a dimmed hot terminal configured to be coupled to the lighting load and to provide AC power to the lighting load;
a controllably conductive device configured to control the amount of power to the lighting load via the dimmed hot terminal; and
at least one control circuit operably connected to the microphone, the communication circuit, and the controllably conductive device, the at least one control circuit configured to:
receive, via the microphone, a voice command;
determine that the voice command fails to correspond to a previously stored load control command stored in the memory of the load control device for controlling the amount of power to the lighting load;
transmit, based on the determination that the voice command fails to correspond to the previously stored load control command stored in the memory of the load control device, the voice command to a first voice service selectable from a group of voice services configured to interpret commands for controlling lighting loads;
upon the transmission of the voice command to the first voice service, start a timer for determining whether a response is received from the first voice service;
determine that the timer exceeds a threshold within which a response is to be received from the first voice service;
based at least in part on the determination that the timer exceeds the threshold within which the response is to be received from the first voice service, transmit the voice command to a second voice service of the group of voice services configured to interpret commands for controlling lighting loads;
receive a response from the second voice service of the group of voice services configured to interpret commands for controlling lighting loads;
interpret the response to determine that the response comprises a load control command for controlling the amount of power to the lighting load;
based at least in part on the determination that the response from the second voice service comprises the load control command for controlling the amount of power to the lighting load, control the controllably conductive device in accordance with the load control command; and
store, in the memory of the load control device, the load control command for controlling the amount of power to the lighting load responsive to subsequently received voice commands via the microphone,
wherein the load control device is configured to be installed in an electrical wallbox.
2 . The load control device of claim 1 , wherein the response comprises a first response, wherein the voice command comprises a first voice command, wherein the at least one control circuit is further configured to:
receive a second voice command via the microphone;
transmit the second voice command to at least one of the first voice service or the second voice service;
receive a second response from the at least one of the first voice service or the second voice service; and
cause the second response to be played via a speaker based at least in part on a determination that the second response does not comprise a load control command for controlling the lighting load.
3 . The load control device of claim 2 , wherein the speaker is integral with the load control device.
4 . The load control device of claim 2 , wherein the speaker is separate from the load control device and wherein to cause the second response to be played via the speaker comprises to communicate the second response to the speaker via the communication circuit.
5 . The load control device of claim 1 , wherein the at least one control circuit is further configured to:
receive a wake word; and
determine that the received wake word is associated with the first voice service, wherein the voice command is transmitted to the first voice service based at least in part on the determination that the received wake word is associated with the first voice service.
6 . The load control device of claim 1 , wherein the at least one control circuit is further configured to:
receive a wake word;
determine that the received wake word comprises a generic wake word;
based at least in part on the determination that the received wake word comprises the generic wake word, process the received voice command to determine that a word of interest is present;
based at least in part on the determination that the word of interest is present, determine that the word of interest is associated with the first voice service of the group of voice services; and
based at least in part on the determination that the word of interest is associated with the first voice service of the group of voice services, transmit the voice command to the first voice service.
7 . The load control device of claim 1 , wherein the at least one control circuit is further configured to receive a selection of the first voice service of the group of voice services from a mobile application.
8 . A method performed by a load control device configured to be installed in an electrical wallbox, the method comprising:
receiving a voice command;
determining that the voice command fails to correspond to a previously stored load control command stored at the load control device for controlling an amount of power to a lighting load;
transmitting, based on the determination that the voice command fails to correspond to the previously stored load control command stored at the load control device, the voice command to a first voice service selectable from a group of voice services configured to interpret commands for controlling lighting loads;
upon transmitting the voice command to a first voice service, starting a timer for determining whether a response is received from the first voice service;
determining that the timer exceeds a threshold within which a response is to be received from the first voice service;
based at least in part on the determination that the timer exceeds the threshold within which the response is to be received from the first voice service, transmitting the voice command to a second voice service of the group of voice services configured to interpret commands for controlling lighting loads;
receiving a response from the second voice service of the group of voice services configured to interpret commands for controlling lighting loads;
interpreting the response to determine that the response comprises a load control command for controlling the amount of power to the lighting load;
based at least in part on the determination that the response from the second voice service comprises the load control command for controlling the amount of power to the lighting load, controlling the amount of power to the lighting load in accordance with the load control command; and
storing, at the load control device, the load control command for controlling the amount of power to the lighting load responsive to subsequently received voice commands.
9 . The method of claim 8 , wherein the response comprises a first response, wherein the voice command comprises a first voice command, the method further comprising:
receiving a second voice command;
transmitting the second voice command to at least one of the first voice service or the second voice service;
receiving a second response from the at least one of the first voice service or the second voice service; and
playing the second response via a speaker based at least in part on determining that the second response does not comprise a load control command for controlling the lighting load.
10 . The method of claim 8 , further comprising:
receiving a wake word; and
determining that the received wake word is associated with the first voice service, wherein the transmitting the voice command to the first voice service is based at least in part on the determination that the received wake word is associated with the first voice service.
11 . The method of claim 8 , further comprising:
receiving a wake word;
determining that the received wake word comprises a generic wake word;
based at least in part on determining that the received wake word comprises the generic wake word, determining that a word of interest is present;
based at least in part on the determination that the word of interest is present, determining that the word of interest is associated with the first voice service of the group of voice services; and
based at least in part on the determination that the word of interest is associated with the first voice service of the group of voice services, transmitting the voice command to the first voice service.
12 . The method of claim 8 , further comprising receiving a selection of the first voice service of the group of voice services from a mobile application.
13 . At least one non-transitory computer-readable storage medium comprising executable instructions configured to cause at least one control circuit of a load control device configured to be installed in an electrical wallbox, to:
receive a voice command;
determine that the voice command fails to correspond to a previously stored load control command stored at the load control device for controlling an amount of power to a lighting load;
transmit, based on the determination that the voice command fails to correspond to the previously stored load control command stored at the load control device, the voice command to a first voice service selectable from a group of voice services configured to interpret commands for controlling lighting loads;
upon the transmission of the voice command to the first voice service, start a timer for determining whether a response is received from the first voice service;
determine that the timer exceeds a threshold within which a response is to be received from the first voice service;
based at least in part on the determination that the timer exceeds the threshold within which the response is to be received from the first voice service, transmit the voice command to a second voice service of the group of voice services configured to interpret commands for controlling lighting loads;
receive a response from the second voice service of the group of voice services configured to interpret commands for controlling lighting loads;
interpret the response to determine that the response comprises a load control command for controlling the amount of power to the lighting load;
based at least in part on the determination that the response from the second voice service comprises the load control command for controlling the amount of power to the lighting load, control the amount of power to the lighting load in accordance with the load control command; and
store, at the load control device, the load control command for controlling the amount of power to the lighting load responsive to subsequently received voice commands.
14 . The at least one non-transitory computer-readable storage medium of claim 13 , wherein the response comprises a first response, wherein the voice command comprises a first voice command, the executable instructions further configured to cause the at least one control circuit to:
receive a second voice command;
transmit the second voice command to at least one of the first voice service or the second voice service;
receive a second response from the at least one of the first voice service or the second voice service; and
play the second response via a speaker based at least in part on a determination that the second response does not comprise a load control command for controlling the lighting load.
15 . The at least one non-transitory computer-readable storage medium of claim 13 , the executable instructions further configured to cause the at least one control circuit to:
receive a wake word; and
determine that the received wake word is associated with the first voice service, wherein to transmit the voice command to the first voice service is based at least in part on the determination that the received wake word is associated with the first voice service.
16 . The at least one non-transitory computer-readable storage medium of claim 13 , the executable instructions further configured to cause the at least one control circuit to:
receive a wake word;
determine that the received wake word comprises a generic wake word;
based at least in part on the determination that the received wake word comprises the generic wake word, determine that a word of interest is present;
based at least in part on the determination that a word of interest is present, determine that the word of interest is associated with the first voice service of the group of voice services; and
based at least in part on the determination that the word of interest is associated with the first voice service of the group of voice services, transmit the voice command to the first voice service.
17 . The at least one non-transitory computer-readable storage medium of claim 13 , the executable instructions further configured to cause the at least one control circuit to receive a selection of the first voice service of the group of voice services from a mobile application.