Can mycroft_routine_skill be used with current version?

Please take a look here. Here is my current issue after install

ERROR    | 23789 | mycroft.skills.settings:_issue_api_call:306 | Failed to upload skill settings meta for ...

This is occuring in debug for nearly eve skill and I only have tried to install the routine

What commands did you use to install the skills and what was the output?

i tried both msm and git clone GitHub - ChristopherRogers1991/mycroft_routine_skill: Create, run, and schedule routines with Mycroft

to do it manually under pretty much all the skill files, I deleted the ones copies not under /opt
Ive since lost the output but it was successful, although i did so under user not .venv

Officially supported skills do the same error

sean@ubtu:/opt/mycroft/skills$ git clone https://github.com/ChristopherRogers1991/mycroft_routine_skill.git
Cloning into 'mycroft_routine_skill'...
remote: Enumerating objects: 323, done.
remote: Counting objects: 100% (197/197), done.
remote: Compressing objects: 100% (97/97), done.
remote: Total 323 (delta 114), reused 171 (delta 94), pack-reused 126
Receiving objects: 100% (323/323), 82.55 KiB | 1.76 MiB/s, done.
Resolving deltas: 100% (138/138), done.
sean@ubtu:/opt/mycroft/skills$ cd mycroft_routine_skill
sean@ubtu:/opt/mycroft/skills/mycroft_routine_skill$ source <mycroft-core>/.venv/bin/activate
bash: mycroft-core: No such file or directory
sean@ubtu:/opt/mycroft/skills/mycroft_routine_skill$ source ~/mycroft-core/.venv/bin/activate
(.venv) sean@ubtu:/opt/mycroft/skills/mycroft_routine_skill$ 
(.venv) sean@ubtu:/opt/mycroft/skills/mycroft_routine_skill$     pip install -r requirements.txt
Collecting apscheduler
  Using cached APScheduler-3.8.1-py2.py3-none-any.whl (59 kB)
Requirement already satisfied: setuptools>=0.7 in /home/sean/mycroft-core/.venv/lib/python3.8/site-packages (from apscheduler->-r requirements.txt (line 1)) (59.3.0)
Requirement already satisfied: six>=1.4.0 in /home/sean/mycroft-core/.venv/lib/python3.8/site-packages (from apscheduler->-r requirements.txt (line 1)) (1.16.0)
Requirement already satisfied: pytz in /home/sean/mycroft-core/.venv/lib/python3.8/site-packages (from apscheduler->-r requirements.txt (line 1)) (2017.2)
Collecting tzlocal!=3.*,>=2.0
  Using cached tzlocal-4.1-py3-none-any.whl (19 kB)
Collecting pytz-deprecation-shim
  Using cached pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl (15 kB)
Collecting backports.zoneinfo; python_version < "3.9"
  Using cached backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl (74 kB)
Collecting tzdata; python_version >= "3.6"
  Using cached tzdata-2021.5-py2.py3-none-any.whl (339 kB)
Installing collected packages: backports.zoneinfo, tzdata, pytz-deprecation-shim, tzlocal, apscheduler
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/home/sean/mycroft-core/.venv/lib/python3.8/site-packages/backports.zoneinfo-0.2.1.dist-info'
Consider using the `--user` option or check the permissions.

WARNING: You are using pip version 20.0.2; however, version 21.3.1 is available.
You should consider upgrading via the '/home/sean/mycroft-core/.venv/bin/python -m pip install --upgrade pip' command.

@S_Murphy ,

The mycroft-msm install is not going to work, because it’s not a supported skill.

Before I tried the git clone, I saved a copy of the current skills and the vocabulary:

pi@ubuntu:~$ lsskills > skills.before
pi@ubuntu:~$ lsvocab > vocab.before

Then I installed the skill as you did:

pi@ubuntu:~$ cd $SKI
pi@ubuntu:/opt/mycroft/skills$ git clone https://github.com/ChristopherRogers1991/mycroft_routine_skill.git
Cloning into 'mycroft_routine_skill'...
...

Then I created a list of skills and vocabularies after the install:

pi@ubuntu:/opt/mycroft/skills$ cd
pi@ubuntu:~$ lsskills > skills.after
pi@ubuntu:~$ lsvocab > vocab.after

There was one skill added as expected:

pi@ubuntu:~$ diff skills.before skills.after
31a32
> mycroft_routine_skill [installed]

But comparing the list of vocabularies before and after is a bit questionable:

pi@ubuntu:~$ diff vocab.before vocab.after
122a123
> beginscheduleshow
159a161,162
> delete
> destroydescribedisableenablelistroutineroutinesrun
165a169
> displaythat's all
202a207
> friday
229a235
> initializemonday
272a279
> new
313a321
> remove
327a336
> saturday
331c340
< searchmore
---
> searchcancelcreate
365a375
> start
371a382
> sunday
394a406,408
> that is all
> that is itmore
> that's it
398a413
> thursday
412a428
> trigger
414a431
> tuesday
430a448
> wednesday

btw, the lsskills and lsvocab commands are small shell scripts available at GitHub - mike99mac/mycroft-tools: line command tools to use with mycroft

Hope this helps.

-Mike M

Is that a standalone pi installation? I was hoping to perfect my install on my ubuntu desktop and transfer the set up to other devices.
This is what shows for debug on every skill

Establishing Mycroft Messagebus connection...
 20:24:32.708 | WARNING  | 23789 | ConfigurationSkill | Failed to update settings, will retry later
 20:24:49.576 | ERROR    | 23789 | mycroft.skills.settings:_issue_api_call:306 | Failed to upload skill settings meta for mycroft-pairing|21.02
Traceback (most recent call last):
  File "/home/sean/mycroft-core/mycroft/skills/settings.py", line 304, in _issue_api_call
    self.api.upload_skill_metadata(self.settings_meta)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 371, in upload_skill_metadata
    return self.request({
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 64, in request
    return self.send(params)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 147, in send
    return self.get_response(response, no_refresh)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 170, in get_response
    raise HTTPError(data, response=response)
requests.exceptions.HTTPError: {'skill_gid': ['Received skill setting definition before manifest for skill mycroft-pairing|21.02']}
 20:24:50.833 | ERROR    | 23789 | mycroft.skills.settings:_issue_api_call:306 | Failed to upload skill settings meta for mycroft-joke|21.02
Traceback (most recent call last):
  File "/home/sean/mycroft-core/mycroft/skills/settings.py", line 304, in _issue_api_call
    self.api.upload_skill_metadata(self.settings_meta)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 371, in upload_skill_metadata
    return self.request({
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 64, in request
    return self.send(params)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 147, in send
    return self.get_response(response, no_refresh)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 170, in get_response
    raise HTTPError(data, response=response)
requests.exceptions.HTTPError: {'skill_gid': ['Received skill setting definition before manifest for skill mycroft-joke|21.02']}
 20:24:50.998 | ERROR    | 23789 | mycroft.skills.settings:_issue_api_call:306 | Failed to upload skill settings meta for fallback-query|21.02
Traceback (most recent call last):
  File "/home/sean/mycroft-core/mycroft/skills/settings.py", line 304, in _issue_api_call
    self.api.upload_skill_metadata(self.settings_meta)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 371, in upload_skill_metadata
    return self.request({
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 64, in request
    return self.send(params)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 147, in send
    return self.get_response(response, no_refresh)
  File "/home/sean/mycroft-core/mycroft/api/__init__.py", line 170, in get_response
    raise HTTPError(data, response=response)
requests.exceptions.HTTPError: {'skill_gid': ['Received skill setting definition before manifest for skill fallback-query|21.02']}
 20:24:51.011 | ERROR    | 23789 | mycroft.skills.settings:_issue_api_call:306 | Failed to upload skill settings meta for mycroft-reminder|21.02

This is not correct. Please don’t pile confusion onto confusion.

Onto the repeated Exceptions: There seems something fundamentally wrong with your setup. I would advise starting from scratch using default setup options and work your way up from there.

Is the device even paired?

Whoops, sorry, I stand corrected.

-Mike M

Ininstalled mycroft under user@ubuntu$

i use the device as a desktop, should I have installed within in another directory?

pi@ubuntu:~$ lsskills > skills.before
pi@ubuntu:~$ lsvocab > vocab.before

did nothing for me but i probably need the git hub install. I just need to understand the install for my application before i can build and debug.

it is fine as is (ie /home/sean/mycroft-core/)

">

pi@ubuntu:~$ lsskills > skills.before
pi@ubuntu:~$ lsvocab > vocab.before

“Before I tried the git clone, I saved a copy
of the current skills and the vocabulary:”

Is that required? I just installed the skill and attempted to use the mycroft terminal to talk to it.

strong text```pi@ubuntu:~$ lsskills > skills.before
pi@ubuntu:~$ lsvocab > vocab.before

pi@ubuntu:~$ diff vocab.before vocab.after
122a123
> beginscheduleshow
159a161,162
> delete

'```“diff vocab.before vocab.after” Does it have to be confiured manually like this? If so, what files do I use and where can i find commands.

lskills doesnt work for me but lsvocab does. “/usr/local/sbin/lsskills :mycroft msm : command not found”

@S_Murphy - thanks for the input on lsskills. I believe I see the problem in the code I provided to try to help the community. Here is the bash function to list skills:

```function listSkills()
 {
  local filterClause=""                    # no search filter
  if [ ${#pattern} != 0 ]; then            # search pattern passed in 
    filterClause="| grep $pattern"         # add search filter
  fi
  if [ "$skillsType" = all ]; then         # show all skills
    output=`mycroft-msm list 2> /dev/null | sort`
  elif [ "$skillsType" = installed ]; then # show just skills installed
    output=`mycroft-msm list 2> /dev/null | grep installed | sort`
  else                                     # assume 'unistalled'
    output=`mycroft-msm list 2> /dev/null | grep -v installed | sort`
  fi
 }                                         # listSkills()

The function expects that mycroft-msm is in your PATH, but it is not. So one workaround is to set your PATH environment variable to include the directory where mycroft-msm resides. @S_Murphy could you please try this?

But let me float an idea to the Mycroft techies - could the Mycroft executables at least add symlinks for all Mycroft commands to /usr/local/sbin at install time? That would be in keeping with the Linux Filesystem Hierarchy Standard, and would obviate the need for users to set their PATH correctly… Just a thought …

-Mike M

mycroft-msm doesnt work for me unless in the .venv. Even then its just msm. I tried to set the path variable as found here, no luck there. I was able to install msm in the /home/mycroft folder, but ran into some issues.

I created my own branch of the mycroft_tools and think i found a fix. Will retry

@S_Murphy when you say you updated your PATH environment variable, I see some possible issues in the doc you reference. What is the output of:

$ echo $PATH 
$ which mycroft-msm

Here is the output in my environment:

pi@ubuntu:/usr/local/sbin$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/games:/home/pi/mycroft-core/bin
pi@ubuntu:/usr/local/sbin$ which mycroft-msm
/home/pi/mycroft-core/bin/mycroft-msm
```

I installed something incorrectly and broke it, rewriting from the img file for a fresh start. Do I try msm or git for the mycroft-tools? As for the routine skills?

What directories should I be running the install commands in

is there a way to back up my install? I have had to reinstall the os twice now.

@S_Murphy

I installed something incorrectly and broke it … I have had to reinstall the os twice now.

Only twice? You’re not even getting warm yet :)) Please try a few more installs. Practice makes perfect … the key I have found, is to update your notes as to what you did … then after 5 or 7 or 9 or even 11 tries, you start to get to a document that is worthwhile … then you throw it out and start again with a different premise …

Hope this helps.

-Mike M

Do i need the mycroft-tools for the routine skill? how would you recommend I install the skills? MSM or manually? Which directories do each need to be installed in?