Cortana skill for HABot (Testers needed and maintainer input requested)

I yesterday started and finished (into a working prototype) a Cortana skill for the HABot. To the people who created HABot, WOW thanks, it made everything so amazingly easy. By no means it the Cortana skill finished, but way more than half way.

What I am looking for now are testers (I have 30 spots), and permission to launch it as an official channel for openHAB/HABot on the Cortana Skills Store once it is finished.

Its is built on the Microsoft Bot Framework, and right now I am hosting it (through my company) on Microsoft Azure. Basically what it does is create a “nice” login experience and forward queries to the HABot.

The code is (obviously) opensource (https://github.com/zealofzebras/cortana-openhab-skill).

Improvements to come:

  • Better error handling
  • Handling of Cards and not just text / voice
  • If granted permission the login experience can be greatly improved if the bot is granted OAuth access to myopenhab.org since that can be automatically handled by Cortana and other channels (Basic auth is not preferred on those channels)
  • Make sure everything is spoken and test the voice only interface on the Invoke

Questions for the maintainers and community:

  • Since this is built on the Microsoft Bot Framework, and using standard items (and basically just transforming calls to HABot) it can be launced on Skype, FB messenger and a host of other platforms with basically one click. Are there an interest in that? That way HABot is instantly accessible on basically all communications platforms (like Phone, Text and Email :wink: if I can get the login experience to work properly)

My goal was to get Cortana to speak directly with openHAB and HABot made it possible in less than a day. Thanks for that.

(Btw everything is setup with CI, so feel free to make PR’s the results when approved will be instantly available on the channels)

Note on service: Since this is running on my company’s accounts everything is good so far, if the popularity suddenly explodes (and costs also) I retain the right to pause the service until I can figure something else out. (The bot channel runs on the free level now)

If you want to be a tester, DM your Microsoft account email, and I will enable the Cortana skill for you.

5 Likes

Hi @petero!

Very cool initiative! I looked into the MS Bot Framework a while ago and saw it as a nice potential way to put HABot on more channels (Slack, Telegram are especially interesting), so I’m pleased you have done an actual implementation so fast. It’s a bit of a shame that Cortana skills support only US English since HABot can also “speak” French and German - which is I think the biggest userbase. Nonetheless even if I don’t personally use Cortana, I’ll still set it up on one of my Microsoft accounts, because I’m very interested to see it in action.

OAuth should definitely be the way to go, storing credentials are never a good idea - I don’t know where they are stored, locally or on the cloud, but especially if they end up in the cloud it’s a big no-no… I don’t see a problem with adding another OAuth2 flow for the Cortana Skill to openHAB Cloud; I invite you to open an issue at Issues · openhab/openhab-cloud · GitHub to discuss it further with the maintainers there.

We’re not quite there yet, I think; this would have to be discussed with @kai - but I’ll assume that if there’s infrastructure behind it, to become “official” it would have to be owned by the openHAB Foundation.

Good luck with this project!

@petero Sounds like a great feature!

Yes, if this needs hosting, this would be done through the openHAB Foundation. Once the skill is ready for prime time, feel free to DM me about that.

They do as of now, I know it is a big no no (especially from an openHAB perspective, but since the credentials are needed for the myopenhab.org connection, I cannot even one-way-hash them :frowning: I will open an issue for the oAuth because that is what is best! (But I could not wait for that, I wanted to test if it worked now now now :slight_smile:

My point was simply, I would put more effort into getting it to primetime and launched in the store if there was interest in it from the community :slight_smile: I was not asking to launch it today (or tomorrow)

Will do, for now I am polishing it, and come January I will do some further testing, but essentially it shows how easy it is to get new channels to the HABot, that is the real good work.

2 Likes

Ran into a bug already :slight_smile: I tried to connect, gave permission, and had the login form, but I entered wrong credentials by mistake :man_shrugging:
(by the way you might want the password field not to show the password in clear text!)
Now I couldn’t connect anymore even if I “disconnect” the skill, when I tried again I didn’t get the login form, only an error message: “Sorry, it looks like something went wrong”. What I had to do is to change my myopenhab.org credentials to the wrong ones I used.

But it’s working amazingly already, good job!

Hi, PM me when you are ready for this, should not be a problem to add at all.

“tell openhab to logout” is the secret sauce to logout information.

Unfortunately I cannot choose a password box. The only way I can design that thing is through: https://adaptivecards.io/ which is quite limited, unless I have missed something. (Btw the android screenshot on that page looks stunningly like the HABot html interface) There is not a way, but they are thinking about it: https://github.com/Microsoft/AdaptiveCards/issues/1443

Obviously when I switch to oAuth it would be less of a problem, but somehow for people who run their own server they should be able to set credentials… I will think about a better way…

P.S. (I keep turning on and off the basement lights :slight_smile: it seems that annoys the family less)

how’s the progress?