Skip to content

joshabb/skyport

Repository files navigation

Skyport Alexa

Self-hosted Alexa Smart Home bridge for Daikin Skyport mini splits.

This project lets you run a private Alexa skill in your own AWS account so Alexa can control Daikin mini splits that are exposed through the Skyport app but do not appear as normal thermostats to Alexa.

What It Supports

  • Alexa account linking with Skyport credentials.
  • Discovery of Skyport indoor units as Alexa thermostat endpoints.
  • Power on/off.
  • Cool, heat, auto, dry, and fan operation modes.
  • Fahrenheit temperature reporting by default.
  • Set target temperature, for example "set Upstairs Air Conditioner to 72".
  • Mini-split-specific mode controllers:
    • Power Mode: normal, powerful, econo
    • Swing Mode: fixed, swing
  • Encrypted token and credential storage in your own AWS account.
  • Private self-hosted deployment using AWS CDK, Lambda, Lambda Function URL, and DynamoDB.

Status

This is an unofficial personal integration. It uses the Skyport API behavior observed from devices and accounts we own. It is not affiliated with or endorsed by Daikin, Skyport, Amazon, or Alexa.

Alexa Smart Home voice routing can be picky with custom modes. The most reliable phrasing is usually:

Alexa, turn on Upstairs Air Conditioner.
Alexa, set Upstairs Air Conditioner to 72.
Alexa, set Upstairs Air Conditioner mode to dry.
Alexa, set Upstairs Air Conditioner mode to fan.
Alexa, set Upstairs Air Conditioner power mode to powerful.
Alexa, set Upstairs Air Conditioner swing mode to swing.

Quick Start

Use Node.js 20 or newer.

npm install
npm test

Deploy the private backend:

npx cdk bootstrap
npm run deploy

The deploy prints the Lambda ARN and OAuth URLs needed by the Alexa Developer Console. See Private Alexa Testing for the full click-by-click setup.

Local Development

cp .env.example .env
npm run dev

Then open:

http://localhost:3000/oauth/authorize?response_type=code&client_id=skyport-alexa-local&redirect_uri=http://localhost:3000/callback&state=local-test

See Self-Hosting for local token exchange and simulator commands.

Security Notes

  • Do not commit .env, .local/, .mitmproxy/, captures/, cdk.out/, or node_modules/.
  • The deployed backend stores Skyport credentials encrypted so it can re-login when Skyport access tokens expire.
  • Keep the generated Alexa OAuth client secret private.
  • If you used proxy captures while discovering the API, treat all capture files as secret-bearing and rotate your Skyport password afterward.

Repository Layout

  • src/: Lambda, OAuth/account-linking server, Skyport API client, Alexa directive handlers, device mapping, stores.
  • infra/cdk/: AWS CDK stack.
  • scripts/: local simulation and optional capture tooling.
  • docs/: deployment, testing, and API notes.

License

MIT

About

Self-hosted Alexa Smart Home bridge for Daikin Skyport mini splits

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors