With Virtual Breadboard (VBB) Smart Home controls you can roll your own Smart Home Control applications without any programming.
To see how you can use these controls in a live project checkout this previous hackster project showing all the steps needed to remotely control a Lamp with infrared control and Alexa voice.
Virtual Breadboard Smart Home Alexa Skill + Edge:Bit Gadget
Virtual Breadboard Smart Home ControlsThe Smart Home controls implement the Alexa Smart Home API Interfaces providing a standardised way to discover and control your applications with voice commands.
The Alexa Smart Home APIThe Alexa Smart Home API defines a JSON schema that describe Alexa Interfaces and how they can be discovered, queried and invoked using Alexa voice utterances.
There are many advantages of using the Smart Home API. For one thing the integration into the Amazon experience is tighter as you don't have to add additional qualifiers to identify your skill. Also as Amazon grows the capabilities of the Smart Home API those improvements pass through without extra development.
The Virtual Breadboard Smart Home SkillVirtual Breadboard Smart Home API Skill interfaces with the Alexa through the VBB Cloud Services on behalf of the VBB user.
The Virtual Breadboard Skill is a certified Alexa Skill which you search for and link to from the Alexa Skills store.
To work with the Virtual Breadboard skill you need to make a link between your Alexa account and your Virtual Breadboard account. If you are a regular user of Alexa you will be familiar with this straightforward process.
If you are new to Alexa follow this Hackster project to step through the process.
Linking Alexa to the Virtual Breadboard Smart Home Skill
The VBB Smart Home Control ToolboxThe App version of Virtual Breadboard moves beyond circuit modelling and virtualization and mixes modern technologies in a single visually interactive design environment.
The Smart Home group in the VBB Toolbox is a collection of controls that implement specific interfaces defined by the Alexa Smart Home API exposing the intent of the API as visual interactive circuit elements.
From the VBB users point of view these controls work as regular VBB components which can wired into circuits the same intuitive way as L.E.D's, switches and so on.Properties
Each VBB component has properties which define how it behaves. The Smart Home Controls have additional special purpose properties which are used to construct the Alexa Smart Home Api Discovery document. This defines what name you use when activating controls and how Alexa handles the context of what you say.
All Smart Home controls have four required Alexa properties
Alexa:EndPointId - A unique endpoint id that is used internally by Alexa for identifying the endpoint to communicate with.
TIP: You can have more than one Smart Home control with the same Alexa:EndPointId. This will create a multi-interfaced endpoint with a single name. You can experiment with this but it's not well tested yet and will be the subject of a future project.
Alexa:FriendlyName - The name used when you speak with Alexa.
TIP: Keep it a simple name that Alexa will be able to understand easily.
Alexa:Description - This description will appear next to the device in the Alexa App to remind what the name is all about.
TIP: Add an example utterance to remind you how to control it
Alexa:Categories - The category of your endpoint as per the Alexa Smart Home API Categories. Used by the Alexa App to help you find and display the endpoint controls.
Some controls have additional properties which will be described per control below.
The ControlsThe currently supported controls map to the follow Alexa interfaces
Alexa.PowerControllerThe PowerController
interface describes the messages used to control and report on the powerState of a device. This is mapped to a single output pin which is driven HIGH with TurnOn and LOW with the TurnOff command.
Recommended Categories
- SWITCH
UI Actions
- Tap to toggle the powerState
Voice Commands
TurnOn
"Alexa , turn on device name"
Alexa, turn on LAMP
TurnOff
"Alexa, turn off device name"
Alexa, turn off LAMP
The LockController
interface describes the messages used to control and report on the lockState of a device. This is mapped to an output pin which is driven HIGH with the Lock command. A second input Pin (*) is used to determine the actual state when reporting the lockState as follows
- Requested state is HIGH, actual state HIGH reported lockState is LOCKED
- Requested state is LOW, actual state HIGH reported lockState is LOCKED
- Requested state is HIGH, actual state LOW reported lockState is JAMMED
- Requested state is LOW, actual state LOW reported lockState is UNLOCKED
NOTE: For safety only Lock is supported by voice.
Recommended Categories
- DOOR, SMARTLOCK
UI Actions
- Tap to toggle the requested lock state
Voice Commands
Lock
"Alexa, lock my device name"
Alexa, lock DOOR
Voice Query
"Alexa, is device name locked"
Alexa, is DOOR locked
[Alexa} Checking.. hang on.. The DOOR is lockedAlexa.TemperatureSensor
The TemperatureSensor interface describes the messages used to report on the temperature of a device. This is mapped to an analog input pin which maps the input voltage range LOW to HIGH with temperature range TEMP_MIN to TEMP_MAX as set by the properties. The property values also mark up the control.
Recommended Categories
- TEMPERATURE_SENSOR
Additional Properties
- TEMP_MIN - The minimum of the range maps to LOW
- TEMP_MAX - The max of the temperature range maps to HIGH
- TEMP_UNITS - The units to report and display, CELSIUS, FAHRENHEIT, KELVIN
Note: There seems to be an issue with Alexa temperature conversions. It seems to ignore the units and assume that the given value is in FAHRENHEIT then converts Celsius if the Alexa App settings is configured to metric.
Note: There can be control refresh issues with property markup such that the correct values only display at runtime. This will be fixed in future updates.
UI Actions
- None
Voice Commands
- None
Voice Query
"Alexa, what is the temperature of device name"
Alexa, what is the temperature of BEDROOM
[Alexa} The BEDROOM temperature is 26.67 degreesAlexa.PercentageController
The PercentageController interface describes the messages used to control and report on a percentage. This value is mapped to an output pin which maps the to the range where LOW is 0% and HIGH is 100%.
Recommended Categories
- OTHER
UI Actions
- Drag the progress bar value to set the output level
Voice Commands
Set
"Alexa, set device name to number percent"
Alexa, set HEATER to 40%
Increase
"Alexa, increase device name by number percent"
Alexa, increase HEATER by 50%
Decrease
"Alexa, decrease device name by number percent"
Alexa, decrease HEATER by 50%
Voice Query
- None
The PowerLevelController interface describes the messages used to control and report on the powerLevel expressed as a percentage. This is mapped to an output pin which maps the to the range where LOW is 0% and HIGH is 100%.
Recommended Categories
- OTHER
UI Actions
- Drag the dial to set the output level
Voice Commands
Set
"Alexa, set device name to number percent"
Alexa, set POOL to 40%
Increase
"Alexa, increase device name by number percent"
Alexa, increase POOL by 50%
Decrease
"Alexa, decrease device name by number percent"
Alexa, decrease POOL by 50%
Voice Query
- None
Amazon Alexa opens up new possibilities for voice control and the Smart Home Controls for Virtual Breadboard App enable you to easily experiment with this new technology.
More controls to handle more of the Alexa Smart Home API interfaces are on the way and will be showcased in a future project.
The Alexa Smart Home API can feel a bit limited, it would be great to see more voice query utterances for example. Hopefully we will see some more options in future versions of the API.
However, it's hard to complain because let's face it, voice control is amazing! Now that Virtual Breadboard makes it so easy to use, almost anyone can roll their own voice controller home controller. It will be amazing to see what innovations this ease of access will unlock.
Comments