Skills wont run

I have created my own skills and cloned them to my mark1 but it won’t work? Not sure how to test it. I have copied them into skill directory but it wont run. Can any1 help please. Thanks.

Hi @LxR, good on you for giving Skill creation a go. In order to debug further we will need to know

  • how far along are the skills getting - ie how are they being invoked, what happens?
  • how were the skills installed - ie via ssh?
  • what do the logs say?

Best, Kathy

One thing tho to mention is that I’m not sure what submodule does. I have tried running as it is explained on this website in part 4.

The skill is very basic py program similar to hello world, I’m just testing to see if I got all the steps correct.
The skills were installed via git clone
and there is the log file of the skill being tested.

I got a feeling I haven’t installed it correctly.

02:05:01.739 - mycroft.skills.core:handler:743 - WARNING - No fallback could handle intent.
02:05:01.746 - SKILLS - DEBUG - {“type”: “complete_intent_failure”, “data”: {}, “context”: null}
02:05:01.794 - SKILLS - DEBUG - {“type”: “mycroft.skill.handler.complete”, “data”: {“exception”: “No fallback could handle intent.”, “handler”: “fallback”}, “context”: null}
02:05:01.796 - SKILLS - DEBUG - {“type”: “speak”, “data”: {“utterance”: “Sorry, I didn’t catch that. Please rephrase your request.”}, “context”: null}
02:05:01.799 - SKILLS - DEBUG - {“type”: “recognizer_loop:audio_output_start”, “data”: {}, “context”: null}
02:05:01.843 - SKILLS - DEBUG - {“type”: “Command: mouth.talk”, “data”: {}, “context”: null}
02:05:01.878 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=4”, “data”: {}, “context”: null}
02:05:01.925 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:02.031 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:02.130 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=2”, “data”: {}, “context”: null}
02:05:02.268 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:02.363 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=4”, “data”: {}, “context”: null}
02:05:02.501 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:02.610 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:02.754 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:02.810 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:02.860 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:02.965 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:03.009 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:03.072 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:03.176 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:03.314 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:03.367 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:03.466 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:03.562 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=4”, “data”: {}, “context”: null}
02:05:03.680 - SKILLS - DEBUG - {“type”: “enclosure.eyes.blink”, “data”: {“side”: “b”}, “context”: null}
02:05:03.740 - SKILLS - DEBUG - {“type”: “Command: eyes.blink=b”, “data”: {}, “context”: null}
02:05:03.787 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=4”, “data”: {}, “context”: null}
02:05:03.896 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=4”, “data”: {}, “context”: null}
02:05:03.971 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:04.024 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:04.209 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:04.261 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=2”, “data”: {}, “context”: null}
02:05:04.358 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:04.411 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=5”, “data”: {}, “context”: null}
02:05:04.549 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=2”, “data”: {}, “context”: null}
02:05:04.642 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:04.739 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:04.835 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:04.930 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=2”, “data”: {}, “context”: null}
02:05:04.992 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=2”, “data”: {}, “context”: null}
02:05:05.047 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=2”, “data”: {}, “context”: null}
02:05:05.101 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:05.152 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:05.247 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=2”, “data”: {}, “context”: null}
02:05:05.349 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=0”, “data”: {}, “context”: null}
02:05:05.439 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:05.488 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=3”, “data”: {}, “context”: null}
02:05:05.542 - SKILLS - DEBUG - {“type”: “Command: mouth.viseme=4”, “data”: {}, “context”: null}
02:05:05.639 - SKILLS - DEBUG - {“type”: “recognizer_loop:audio_output_end”, “data”: {}, “context”: null}
02:05:05.720 - SKILLS - DEBUG - {“type”: “Command: mouth.reset”, “data”: {}, “context”: null}

Hi LxR,

do you have a link to the skill in question?

The skill folder should be placed in /opt/mycroft/skill/ so after installing the new skill mySkill should be in

/opt/mycroft/skills/mySkill

directly in the mySkill folder your init.py should be together with any vocab and dialog folders.

There can also be a rights issue, the skill should be owned by the mycroft user. If you did a git clone as the pi user you may need to run chown:

sudo chown -R mycroft /opt/mycroft/skills/

/Åke

Yes I did that I have changed the ownership from pi to mycroft but it wont run not sure why tho? It still a mystery for me. Here is the link to the file you can try it out let me know if it works.

Assuming I fixed the bugs in the program which I have what would be next step to test if it runs. NVM the link above.

(The big thing I could see in the skill above is that the intent registration should be made in initialize and not in init as in the link)

The next thing would be to place the test_file folder in the /opt/mycroft/skills/ folder.

One thing that may be of interest is to try starting the skill with the skill container. This will load only your skill in the foreground. On a mark-1/picroft I believe there is

mycroft-skill-container path/to/skill-dir

and if it’s git checkout of mycroft-core there is

./start-mycroft skill_container path/to/skill-dir

Never mind the file above it isn’t written correctly. I have fixed the bugs in the program and it should work. I have tested the file in mycroft-core and it wont trigger. Here what I have found in the speech log file it seems that it wont trigger the intent.

04:01:58.049 - mycroft.client.speech.listener:transcribe:141 - DEBUG - STT: wake up
04:01:58.052 - mycroft.client.speech.main:handle_utterance:55 - INFO - Utterance: [u’wake up’]
04:01:58.208 - mycroft.client.speech.main:handle_complete_intent_failure:67 - INFO - Failed to find intent.

And here is the skill log.

04:16:17.621 - SKILLS - DEBUG - {“type”: “intent_failure”, “data”: {“lang”: “en-US”, “utterance”: “wake up”}, “context”: null}
04:16:17.627 - mycroft.skills.padatious_service:handle_fallback:100 - DEBUG - Padatious fallback attempt: wake up
04:16:17.629 - mycroft.skills.core:handler:741 - INFO - Exception in fallback: max() arg is an empty sequence
04:16:17.632 - mycroft.skills.core:handler:743 - WARNING - No fallback could handle intent.

Here is the new test file.