Alexa TTS Workaround

I just wanted to post this for anybody looking for Alexa TTS without using a Raspberry Pi.
The catch is that you will need a SmartThings hub.

Thanks to: @JDRoberts , @krlaframboise , @ogiewon and @cwwilson08

Requirements:

  1. A SmartThings hub on the same network as Hubitat. I found you need the hub, cloud to cloud won't work.
  2. @cwwilson08 's virtual motion sensor driver with a switch that drives the motion (could probably be done with contact as well).
  3. Other Hub SmartThings Integration 2.0 Application running on Hubitat with real time integration configured for motion sensors.
  4. An Alexa device that supports Routines.

Sources:
Requirement 2: @cwwilson08 's driver

metadata {
	definition (name: "Virtual motion with Switch", namespace: "cw", author: "cwwilson08") {
		capability "Sensor"
		capability "Motion Sensor"
        capability "Switch"
	}   
}

def on() {
    sendEvent(name: "motion", value: "active")
    sendEvent(name: "switch", value: "on")
    runIn(12, off)
}

def off() {
    sendEvent(name: "motion", value: "inactive")
    sendEvent(name: "switch", value: "off")
}

def installed() {
}

Requirement 3:
@krlaframboise 's Other Hub SmartThings Integration 2.0 Application

Thanks to @ogiewon for helping me configure this.

Update 1: @krlaframboise updated other hub ST Integration to include an Alexa Trigger. Kind of the same thing but more user friendly. Sweet!

Requirment 4:
Here is a screenshot of one of my configured Alexa routines. Pretty self explanatory.

Research:
Big thanks to @JDRoberts for an older SmartThings post where he mentions that SmartThings Alexa Skill now supports triggering Routines from a door contact or motion sensor. Here's that post:

Why is that important? Because Routines being fired can result in Alexa Saying something.

So my goal became triggering virtual motion sensors in SmartThings to trigger Routines where Alexa will say pre-configured things.
So how do we talk to SmartThings?

I found that Other Hub SmartThings Integration fit my needs for creating devices in SmartThings that I could write to in real time. See Requirement 3.

I'm not sure if this next step can be avoided by forwarding just a virtual switch to SmartThings and switching it to an Other Hub Virtual Motion Sensor. I will try with my next Alexa Phrase.

So at the time I felt I needed a virtual motion sensor with a switch to drive it showing motion or not. @cwwilson08 was kind enough to share a driver. See Requirement 2.

So now that everything is assembled lest talk about data flow.

Data Flow:

So I've probably left something out and this isn't the best format for tutorials, so please let me know if something doesn't make sense and I'll clarify and update the original post.
Hope people find this useful.
As @ogiewon pointed out, once the Hubitat skill is updated or the other Alexa TTS efforts make a breakthrough this might be useless. :stuck_out_tongue_winking_eye:

5 Likes

I will try this at the weekend. Thanks and great write up.

1 Like

Nice write up. I like the illustration too. I tried this when the ability came out on Alexa, but found it slow sometimes and non-responive other times. What has been your experience? How fast and how accurate?

I've been meaning to write up a similar proceedure, but the trigger from HE is Google Assistant Relay, rather than OtherHub. Yes, you need a separate Node.js server, but it's not hard or expensive to set one up and many of use have either a node server or a RPi (or several in some instances) already running on our networks.

Why do you say you need a ST hub? You don't. I sold mine months ago and can still do this. You just need ST IDE access. Even if you deleted your location like I did, you just create a new location. Mine for example is just called "Virtual Hub". When adding a Device, the only requirements are Name, ID, Type, Version and Location. You can even configure the devices in the ST app if you need to.

When I didn't have my hub running it didn't work at all...

I can try again without it this weekend!
I didn't think you'd need it but I seemed to.

No sir. Unless I’m missing something in your setup, but it looks exactly like what I tried. I couldn’t fire up a SmartThings hub from my account if I wanted to. It doesn’t live here anymore and has been disassociated with my IDE account.

Updated my write up as @krlaframboise updated his ST Integration.

1 Like

For those of you without a SmartThings account, but who would still like Alexa TTS, please check out the following integration that I just released.

Note: I still love @keithcroshaw's solution for triggering Alexa Routines from Hubitat. Nice work Keith!
This new solution allows for much simpler and more flexible TTS.

1 Like

You bugger! lol
I'll look into this and maybe even switch to it.

Good work in advance!

2 Likes

See @Cobra! You're not the only one whose work is sometimes up-ended with another solution! :slight_smile:

@keithcroshaw - thanks for the LOL moment! I was kind of hoping that you'd react in that way! :wink:

2 Likes

Still reading through your write up, but it sounds awesome!

1 Like

It works!
The cookie part was a little complicated but I followed your example more than found my own cookies in the file.

Reading the end of the readme I see this is still dependent upon the cookie not expiring.
Is there anyway to ensure this lasts as long as possible?

1 Like

Yea, that's the tricky part. I actually downloaded FireFox on my PC to generate this cookie. I use Chrome, so I am hoping that the cookie does not expire for a long time since I won't be signing out on FF from the alexa.amazon.com site ever. When Chuck checked the cookie expiration on his system, he said it was good until ~2036. So, that seems promising!

You could even generate the cookie on another computer altogether, I suppose. One which you rarely, if ever use. Just an idea.

Time will tell!

3 Likes

Did the same. So hopefully it will last a long time for me too.

Love this stuff when it works.

Arlo cameras report motion to hubitat via IFTT, the switches use the driver from above. These switches then pick up where you left off. My smartthings hub is not turned on. Alexa chimes up, "motion outside".

Otherhub is great, wish I found that earlier before I turned ST hub off. I tried the new release
with the child motion sensor but could not get it to work. I think I prefer this solution as it has less moving parts. It's surprisingly quick too. Now to think of more use cases.

Thank you to all involved!

1 Like

Just seen this [Beta Release] Amazon Alexa Text to Speech v0.1 - Direct Integration. It just gets better all the time!

Would love to get this method working if stable, but I couldn't get past the cookie part when I tried with the instructions Chris published originally. I'll have to revisit this when I'm able.

Just a note about the SmartThings requirement in Keith's instructions; it's for sure not necessary to have ever owned a hub in order to access the SmartThings IDE. I tested this on Friday by creating a new Samsung account type with a completely different email address and I was able to access the IDE and create a new location. That's the one requirement when creating a new device in the IDE, aside from the normal requirements of Name, ID, and Type.

So anyone can use the Samsung/SmartThings cloud for free, whether or not they ever owned a SmartThings hub.

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.