Homeassistant skill for Mycroft

For thouse of us who are conserned with privacy or those of us who love opennes and adding stuff there is a perfect companion to Home Assistant brining voice control to the party.

Mycroft AI - Open Source Voice Assistant

The good guy Brian Hopkins @btotharye has made a skill to Mycroft that makes it posible to use voice control of homeassistant.

  • “Hey Mycroft, turn on office light”
  • “Hey Mycroft, turn off bedroom lights”
  • "Hey Mycroft, turn on the AC

The Home-Assistant skill evean supports basic speech based communication. When enabled, sentences that were not parsed by any skill before (based on matching keywords) will be passed to this conversation component at the local Home-Assistant. Like this, Mycroft will answer default and custom sentences specified in Home-Assistant.

Mycroft unlike Alexa and Google home and other Voice assistants are open and do not misuse your data. You are in complete control just like you are with Home Assistant.

The skill is now in the Mycroft Skills repo, and can be installed as simple as saying “Hey Mycroft, install homeassistant”

More info at:


and at

https://github.com/btotharye/mycroft-homeassistant

6 Likes

The link to Github seems to be broken. I can’t find anything Mycroft on btotharye’s Github. Can someone please update these links as I’d love to get my Mycroft Mark1 working with HA. Thanks.

yah he deleted his repo :frowning:
BUt lucky us someone did have a copy/fork so the skill can live on. Work is gooing on to get peple toghether in unity to work on importnt skills like this so it dosnt reley on one persons repo and lust to keep it updated.

Skill can be found here

or in the marketplace
https://market.mycroft.ai/skill/homeassistant

1 Like

Thanks. Interesting. The skill is in the Mycoft skills list on mycroft.ai. I’ve got the skill installed, but it was really the HA side of things that I still don’t know how to get working. I’ve got the core Mycroft section added to configuration.yaml, but so far it does nothing. Do we have any example automations defined for Mycroft?

I guess that I just have to keep reading the docs and learning how HA works.

1 Like

I am seriously considering Mycroft so would be interested in how well it integrates with HA. For any of you that have Mycroft and previously used Alexa or Google does Mycroft do everything you want it to? There are so many nuanced issues with both Google and Amazon when connecting to HA. The emulated hue component for Amazon has device limitations but mostly works. Google is having some bugs right now but after some hoops you can get it to work.

thank you supplying this andlo, i had dipped out off the community for a while. I had forked it but since purged - dipping back in again…

1 Like

As far as for what I use HA for Mycroft can control it. Lately I have been translating core and some skills to Danish language, but hassnt yet gotten to translating the HA skill, and all my entitys are still with English names……But HA nd mycroft do make a good companionship.

Hello everyone.
I am new to using Home Assistant and I really have no idea how to turn on an LED with the voice like “Hey Mycroft turns on the LED”.
I use Picroft on a Raspberry 3B +. i have written a program to turn on the LED and have installed the Skill Home Assistent via the msm command. but I can not get the LED on using only the microphone and saying “Hey Mycroft turns on the light”. how to use Home Assitant once install it via msm?
the documents I read about did not help me too much.

if anyone here can have an idea.

Hello,

I know this is in response to a really old post, but I was trying to get the home assistant integration with Mycroft using the conversation.process home assistant service. As you state above:

“The Home-Assistant skill evean supports basic speech based communication . When enabled, sentences that were not parsed by any skill before (based on matching keywords) will be passed to this conversation component at the local Home-Assistant. Like this, Mycroft will answer default and custom sentences specified in Home-Assistant.”

In my Mycroft home assistant skill I do have the checkbox “Enable Conversation Component as fallback” and then in home assistant I created a conversation in my configuration.yaml file with the intent and intent_script but Mycroft doesn’t appear to recognize the intent. I guess a couple of questions:

  1. Do I have to restart mycroft after I add the new intent and intent_script in HA?
  2. Do I have to say a command specifically (like “turn on” or “turn off” and then the intent for it to parse home assistant?)
  3. If I get this conversation service working, theoretically couldn’t I write custom actions in my HA yaml file to be performed based on an intent “text” command from mycroft per the advanced custom sentences here https://www.home-assistant.io/integrations/conversation

Thanks for any and all help in advance!

1 Like

Very goo questions. I did once try to get the conversation to work in homeassistant and use the Mycroft. But didnt figure out how or why it didnt work.
It is on my to long to-do list t look into the mycroft-homeassistant-skill to figure out how to use the conversation fallback. There isnt any documentation on that part as far as I have found.
It is supposed to be at fallback so if no other skills seems to pickup the intent the homeassistant-skil will try to send it to Homeassistant conversation. But as I said I hassnt gotten that part to work.
I am a homeassistant user and have several mycrofts around the house. And have made som simple skills, but the homeaaistant-skill is a big one and I am not that good pythonist (yet) I wish I were as the skill sure could use someone with knoledeg of homeassistant and well known in python and Mycroft. The main reason I got my Mycroft deviceses were to use voice to control my house.

1 Like

Looking into the code and did some testing. The fallback is called so next step is to investigate why HA isnt picking it up (or if it is sent to HA and right endpoint…)

1 Like

Nice thanks andlo! Unfortunately I am a novice regarding python but I plan on learning it a bit more here soon so I can hopefully help out more with mycroft!

Im too not the great pythonist, but learnig everyday. Did look at the skill a year ago, but were not good enough to understand the code. Then I made a skill that setups a complete IDE for devolopment and made a skill that enabled remode debuging, and then I can debug throu the code and I found the problem :slight_smile:
It seems that there are a mistake that did result in the fallback never got used.

I made a fix and pushed it to the github repo and will see if some of the others in the skill-writer-team can confirm that it works and do fix the problem. If you can confirm it would be great.

You can try it (I think) by ssh to your mycroft and cd into the skill folder /opt/mycroft/skills//homeassistant.mycroftai and do at git checkout fix_fallback
like this:

pi@picroft1:/ $ cd opt/mycroft/skills/homeassistant.mycroftai
pi@picroft1:/opt/mycroft/skills/homeassistant.mycroftai $ git checkout fix_fallback
Branch 'fix_fallback' set up to track remote branch 'fix_fallback' from 'origin'.
Switched to a new branch 'fix_fallback'

Then the skill should be reloaded with the fix.

You could at the same time check that settings for fall_back is set to true (should be fetched from home.mycroft.ai skill settings) but check anyway.

at settings.json 
{"__mycroft_skill_firstrun": false, "ssl": true, "host": "myhostname.duckdns.org", "token": "XXXXlonglivedtokenXXX", "verify": false, "portnum": 8123, "enable_fallback": true

seet that “enable_fallback”: true

And all that said - look at the mycroft-forum and mycroft-chat as tehre are some really nice and helpfull people there - just like here on homeassistant-forum

https://community.mycroft.ai/
https://chat.mycroft.ai/

Hello andlo,

Thanks so much for this! It is working in that it is falling back correctly now. However, the speech doesn’t appear to be working in that Mycroft isn’t stating anything back, is that how it is supposed to function? Here is my home assistant code:

conversation:
intents:
Hello:
- Hey Dude
intent_script:
Hello:
speech:
text: Why hello there good sir

Now in the debugger it does report back the text “Why hello there good sir” so again confirming it is falling back correctly but Mycroft doesn’t say it, do I have to code that piece in mycroft itself? Thanks again for all of your help on this!

Great to hear. But I dont know about why he isnt stating anything back. I think he should…I didnt try it on a mycroft device with a speaker - only used the cli to se he got the answer. So there maybe more to look into :slight_smile:
but strange if what comes back in the cli dosnt got spoken…

I will look into that next time I got some spare time…hopeful soon and try it on one of my own mycroft deviceses :slight_smile:

Sounds good, but yes it did come through the cli just fine just not spoken. I will try to troubleshoot as well. Thanks again!

I have it working now. Not entirely sure what specifically fixed it but it was definitely a TTS problem and not home assistant. I went through the tts setup in home assistant again though via Dr. zzzz video just to be sure:

That still didn’t entirely fix it though, I then changed the voice in my device from American Male to British male and then rebooted and it started working.

1 Like

great to hear. Ill se that it get mergeg and sendt to mycroft market as soon as posible :slight_smile:

Hi all!

I am currently planning to replace all my google home stuff and this might be a good solution to do this. Is there a way to react different to a voice command depending where the Mycroft device is located?

For example: If i say “Turn on the lights” and I am in my living room talking to the device located there, only a given set of lights should turn on, not all the lights in my house :slight_smile:

I already tried rhasspy and I am able to do this with it, but I got some struggles with wake word detection and especially with the detection when my command is finished even with a small amount of background noice.