Binding Request: Amazon Echo

Sounds a good fit for where I was headed. I noticed your comment regarding tag structure, if I were to tag with synonym phrases which would be the preferred option?

Group living_room_lights [ "voice:living room lights", "voice:lounge lights" ]

or

Group living_room_lights ["voice:living room lights, lounge lights"]

None, really - tags are meant to reference ontologies, not for putting arbitrary in information for specific use cases. You might rather go for the binding notation like

Group living_room_lights { voice="living room lights,lounge lights" }

But I think NLP is pretty complex and probably needs some more advanced concepts and thoughts, so don’t take the above as a suggestion on how to do it :slight_smile:

Would that cause issues with items already bound to other addons?

I agree NLP is complex and that’s why I’m aiming to use an NLP engine (and I’m currently using a third party engine) to do all the heavy lifting to decipher what the user meant (the intent). I’m currently at a bit of a loose end tying the intent back to actions against the correct items.

No, I would not expect any issues - you can bind as many different bindings to an item as you like.

I received my echo two days ago and started to play with it, awsome gadget.
The amazon-echo-bridge is runing and I can control some switched devices as well as dim some lights.
Doing this, I started to think of how a native openHAB binding could be created, using JUPnP as a base for simulating a hue bridge.
This should be feasible, but we again would be limited to switching or dimming until Amazon will implement more commands to control connected home devices.
Following this thread here I found the openHAB skill for Alexa, which I did not try yet, but think that this could be the better way of linking openHAB to the Echo.
I know tha it will not be the nicest way to always have to say “Alexa, ask openHAB (or whatever we will call it) to…”, but a skill will give us the possibility to implement new commands (like the existing one already does -> lower/rise rolershuters).
So what do you think of going that way, having an “official” openHAB echo skill ?

Best
Hans-Jörg

Hi guys, I have a similar binding now for OH2, see New Binding: Amazon Echo

1 Like

Should we start a project on Bountysource for it? I am willing to kick in $500 to the development. I am sure others would be willing to help out also.

I am looking to control as much as possible with alexa directly, already can control 24 devices with amazon-echo-ha-bridge, but to control more then that you need more then one bridge.

Need to be able to ask things like “what is my current power usage”, “is the water heater on”, “what is the current battery charge”, etc. I guess to do this it needs to be a skill, “Alexa, ask OpenHab”.

I know I can say “Alexa turn garage doors to on” to open then, but really would like to do that cleaner.

@sipvoip - This is relatively easy if you simply pass the full text string (via a custom/private Skill) straight to an OpenHAB VoiceCommand. You can then define all the logic directly in your rules, and have another item which contains the OpenHAB text response so Alexa can reply with a custom message. As mentioned above, I had this working in PHP, but my PoC code is cludgy, and you have to say the skill invocation name, like ‘Alexa ask Jarvis for a status update’… Working to rewrite it in JS as time permits.

Ideally though I want to leverage ASK utterances to extract slots and intelligently issue commands to OpenHAB. This way interactions become a bit more intelligent/natural. A good starting point/example of this can be found here:

@Kai
Finally got round to setting up the “Echo Bridge”… Turns out it wasn’t that hard…
Even easier when I found I could use this to configure the bridge rather than posting JSON to it…
http://bridgeip:port/configurator.html

Is pretty easy from then on…

Can anyone confirm what other Echo commands are possible? I guess because the bridge is emulating a hue bridge that I’m stuck saying “Alexa, turn on the garage door” top open it :slightly_smiling:

@TommySharp - On/Off/Dim - that is unfortunately it! You can do more by creating combinations of custom switch items and rules on the OpenHAB server side too, but its somewhat limited…

@sipvoip - My NodeJS ASK Skill implementation is coming along very well. I finally have it doing almost everything desired, including most of what you described above. Because I used Alexa-App to build the skill in JS, it can be hosted locally on NodeJS (which I prefer, short of an OH io/binding :slightly_smiling: ) or deployed as a Lambda ARN in the cloud. By customizing the scripts JS ‘maps’ which connect simple words to OpenHAB items (i.e. ‘power consumption’ > OH Item ‘HEM1_P1’ or ‘office lights’ > ‘Light_Group_Office’), and heavily leveraging ASK utterances/slots, its really easy for anyone to get used to using it… It is also getting quite good at figuring out what you want regardless of how you ask it, and I’m working on intelligently ‘re-prompting’ the user as needed if something isn’t understood. The only pain points are you have to say the trigger word first - ‘Alexa ask Jarvis to …’, it relies on the cloud, and it cannot ‘announce’ stuff on its own…

This skill based approach however allows me to do all kinds of stuff around the house, and provides a clean I/O via voice for just about everything (not just ‘OK’ in response). Currently I can:

  • Check status reports/weather reports/etc, the output of custom OpenHAB rules
  • Set Hue colors/levels, by room
  • Set Nest temperature
  • Control HVAC (house fan, air purifiers, wood stove blowers, target temps, etc)
  • Switch any appliance that can be controlled by OpenHAB (directly/zigbee/zwave/etc)
  • Change scenes/modes
  • Get states/values of anything that has been mapped (i.e. multisensor temp/humidity/lux, power consumption, etc)
  • Display custom ‘cards’ in the Alexa app
  • Easily customize the verbal feedback for any action!

More to come…
.

1 Like

Mike, that sounds pretty sweet. Do you have this in Github somewhere? Need/want any testers?

Thanks @andre!

I will definitely open source it and throw it up on Github soon. Working out a few issues with it first!

I like it! How do I start playing with it? I like that it can run locally, but the stupid ask Jarvis part frustrates me for some reason. I hope Amazon lets us or someone hacks a way to make this work without that. Also also as you point out fixing that limitation of announcing stuff would be nice. Anyway, would love to play with what you have.

P.S. Can you PM me your paypal address?

1 Like

@sipvoip - THANKS A LOT for your donation via PayPal! That was very much appreciated. As mentioned I’ve already sunk 25 hours of R&D into this thing, and am happy to share it with the open source community. I will expedite getting it up on Github for you :slightly_smiling:

1 Like

@TommySharp I’ve mentioned this a few times earlier on this and other threads, but Alexa will natively allow you to say “Alexa, Open the garage door” for instance and pass the On command using echobridge. I’ve been using the echobridge setup since day one and meets most of my control needs, although I’d love to try oout some of the new development you guys are working on.

Thanks.

@ubergeek As far as I know the closest I can say with the echobridge is “Alexa, turn on the Garage door”. You can only say On/Off not Open/Close as it’s emulating lights…

Strange…works for me since day one saying open or close for on or off function. Open close totally works for me for some reason

Very interesting, and hope that we can somehow get the Echo to also use a custom Skill without having to say the ‘Skill’ name first, and do more than just ON/OFF/DIM like the Amazon Echo HA Bridge seemingly offers! Please let me know if you uncover any other details on this!

Coming down home stretch with a public release of my custom Alexa-HA skill! It might happen later tonight baring any unforeseen complications :slight_smile: Stay tuned…

Hey all,

First release of my Amazon Echo Skill is here, and a community collaboration page here.

1 Like

Adding my input, Open Garage Door works for me. I have noticed that “Alexa, Open THE garage door” does not work as well as “Alexa, Open Garage Door.”