You need a running instance of my smart home server that is public available via HTTPS.
This would look like https://home.mydomain.com:50000/
for example.
The application can be packaged using:
./gradlew build
This will create a file named smart-home-alexaskill-XY.jar
in build\libs
.
Alexa Smart Home skills always run as AWS Lambda and unfortunately take quite some steps to setup.
You can follow these instructions from the official Java sample for the skill and leave out step 7 as we need no database.
After you ran through these steps you should have an AWS Lambda function named SmartHomeFunction
that can be managed
here:
https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/functions/SmartHomeFunction
.
Proceed with these steps to configure the skill:
- Click to the
Code
tab. - Upload the
smart-home-alexaskill-XY.jar
in theCode source
panel. - Click
Edit
on theRuntime settings
panel. - Change the runtime to
Java 11 (Corretto)
. - Set the
Handler
in theRuntime settings
tode.stefan_oltmann.smarthome.alexaskill.AlexaHandler::handleRequest
. - Click on
Save
. - Click on the
Configuration
and selectEnvironment variables
on the left side. - Add key
API_URL
and set it tohttps://home.mydomain.com:50000/
. Replacehome.mydomain.com
with your actual domain name. - Add key
AUTH_CODE
and set it to your security token. This is the content of auth_code.txt you got by setting up the server. - Go to https://alexa.amazon.com and discover your devices again.
If Alexa lists all your devices as expected you can start using them.