Can mycroft_routine_skill be used with current version?

You might try stopping Mycroft (ensure the process stopped, via ps -ef | grep mycroft ), then remove the skills log, and restart Mycroft. That would give you a clean log, so any error you find would be relevant only to the latest run.

Related, have Mycroft logs been synced up with logrotate?

-Mike M

As a somebody new to mycroft, which directories do i install skills in? I am runnin ubuntu and do not see /opt under mycroft-core

/opt/mycroft/skills

I have these three settings in my .bashrc files for quick access to log files and skills, and to have the Mycroft exectuables in my PATH

export LOG="/var/log/mycroft"
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/games:/home/pi/mycroft-core/bin"
export SKI="/opt/mycroft/skills"
-Mike M

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