Amazon Echo (Alexa)

From Domoticz
Jump to navigation Jump to search

There are several possible ways to connect Domoticz to Amazon Alexa. Currently documented are: 'Controlicz' (a native Alexa skill developed by a fellow Domoticz user), deploying your own Alexa skill 'Alexicz' based on a github template (creating a private skill linked to your personal Amazon account only), plus 'HA-Bridge' (a java application developed by BWS Systems that emulates a Philips Hue Bridge on your local network). What all of these methods have in common is that they use pre-built skill models from Amazon which rigidly define the possible voice commands. This makes it much easier for a developer to write a skill, but it does mean that the vocabulary is predefined/restricted. It's the reason you can (currently) only ask Alexa to turn a blind on or off, but cannot say open/close blinds (there is no 'blind' endpoint so we fake it as a light-switch). As a turn around, you can create Routines in the alexa mobile App, to use custom sentences.

Controlicz

Register at https://www.controlicz.com/ - Please read the FAQ first

Add the devices you want to control into Room Plans in your Domoticz instance

setup port forwarding for your SSL port - this only works with HTTPS

Enable the skill on your Alexa device - and you're done :)

Alexicz - Personal Alexa skill

By deploying your own Alexa Domoticz Smart Home skill, you can control your Domoticz devices without the need for extra hardware.

You must have or create an Amazon Developer Account and an Amazon Web Service account to host the Alexa lambda. The task to build your own skill looks a bit daunting at first, but if you follow the excellent HowTo (written by a fellow Domoticz user) to the letter, you will be up and running in no time. The HowTo also describes how you can get the needed Amazon accounts and can be found on GitHub (https://github.com/rimram31/dz_smarthome/blob/master/HOWTO-CreateAlexiczskill-R3.pdf).

As with all Alexa Smarthome skills (and with Controlicz) you will need to open/forward a port in your router. But once implemented you can control your devices not only targetting On/Off state, but also change dimming, alter light colors, get the status (Temperature etc), get camera streams and many ways more are possible.

HA-Bridge

Philips/Amazon have long implemented a native Alexa skill to control Hue lights. When asked to 'discover devices', the Hue hardware bridge exposes your Hue devices without even having to install a skill or to open ports. As the gateway hardware operates using unencrypted data, it was trivial for developers to probe its workings and learn how to mimic its data-traffic. This resulted in a software program that runs as a service and acts just like a real Hue bridge on your network. When configured with details of your Domoticz devices, it exposes them as 'fake' Hue lights that Alexa can discover and control. The main advantage of this approach is that you don't need to open any ports in your router - you just need to install and run the (open-source) HA-Bridge software and you're done. The slight disadvantage is that all your devices have to conform as lamps from a voice-control viewpoint, meaning you can turn on/off and dim/set-color and that's it (no temperature controllers). Also, because all Hue lamps are dimmable, all your HA-Bridge devices will accept a dim voice-command, even if the end-device cannot handle such a command. Hue-emulation represents an even bigger restriction than using the Smart Home API (which can also handle e.g. thermostats, microwave ovens and audio equipment). However, you can set up lots of on/off switches in Domoticz and trigger scripts via their on/off actions that do more, so in practice you can still do quite a lot with HA-Bridge.

There's an excellent HowTo on the github of the developer: (https://github.com/bwssytems/HA-Bridge Home automation bridge that emulates a Philips Hue light system)

SinRic

Sinric helps you to integrate your existing devices (such as RaspberryPi, ESP8226, ESP32 or Arduino) with Amazon Alexa or Google Home for FREE!

https://github.com/kakopappa/sinric


Alhau

https://alhau.com/

That seems to me the best solution to command our devices with alexa with no charge !

  • Create a new domoticz user for Alhau with restricted acces.
  • Give the public URL of your domoticz
  • Restrict the devices for this user
  • Alhau will auto discover these devices. and expose them to alexa.


And for more user friendly sentences , I create some Routines in the Amazon alexa mobile app. For example I have :

"Alexa opens the blind please" => to activate a blind (On/off) device in domoticz.

"Alexa, I am going to bed" => switch on a custom device