Skip to main content
Release NotesTechnical

Mycroft Core Release Notes: 8/14/2017

By August 15, 2017 No Comments
What's New with Mycroft

We’re on the road to 17.08a!  We are putting a lot of things in place as we approach our first major milestone 17.08a alpha release, establishing the mechanisms and policies that will allow us work together to build on this foundation.

Installer Repo

Believe it or not, one of the trickier things about developing software is figuring out how to get it in the hands of others.  Given the broad scope of the Mycroft project and the many and varied platforms on which it can run, it has been particularly tricky for people to figure out how to even get started.  Instructions have been spread across wikis, Github README’s, blog posts…

To simplify this, we have created a single Installer repository.  This will be a single place to find the correct and current method to install a the KDE Plasmoid for Fedora, Raspberry Pi image, or Ubuntu developer installation script.  Look for more entries in the near future as we backfill it and add support for more platforms.

Skills Updates

We have begun a review and update of the existing “default” skills to take advantage of new capabilities of mycroft-core, to provide solid examples for those looking to develop their own skills, and to just make them better.  The first overhaul is of the Weather Skill.

New capabilities:

  • Request forecasts for specific days:
    “What’s the will the weather be like on Tuesday?”
  • Support for precipitation queries:
    “When will it rain next?
    “Will it snow the day after tomorrow?”
  • Weather condition queries:
    “What’s the humidity?”
    “How windy is it?”
  • Sunrise and sunset info:
    “When will the sun rise?

This also fixed a misunderstanding of the Open Weather Map API that produced caused Mycroft to report incorrect high and low temperatures.

This skill also demonstrates methods for using strings with translation support, the new decorator intent definition mechanism, and how to perform natural-language date extractions.

mycroft-core 0.8.20

Finally, the last release of mycroft-core added some major new capabilities for skill writers to be creative with!

Audio Service (#433)

This include a Major unification of audio handling in Mycroft.  The AudioService now manages all sound output, including text to speech, music files and audio streams. This enables:

  • Audio will lower/pause and resume when Mycroft speaks
  • Skills can queue-up multiple audio files/streams for playback
  • Unified playback skip/pause/resume/stop
  • Audio can be redirected to external players besides the local speaker.  Currently there is support for VLC and Mopidy. (Kodi and Chromecast on the way!) “Hey Mycroft, play the news in the kitchen”

See the NPR News and Playback Control skills for examples of interacting with the audio service.

FEATURE: Skill Graphic Output / DisplayManager (#838)

Skills can draw to the Mark 1 face (or future enclosures) by sending encoded or PNG graphics!  Graphics are sent via EnclosureAPI.mouth_display_png(). Graphics are automatically converted to two colors if necessary.

This required creating the concept of the active skill which owns the display. Now you can say “Hey Mycroft, what time is it?” to the Date-Time Skill to see an example of a skill drawing to the display when it is ‘inactive’.

FEATURE: Skill Settings Web UI (#933)

Skill developers can now add a settingsmeta.json file into their skill. With that, mycroft-core will automatically send the metadata to home.mycroft.ai, allowing users to input the settings via a web UI. Then entered values are sent back as a settings.json file which can be used by the skill.

Example settingsmeta.json:

{
   "identifier": "PandoraSkill",
   "name": "Pandora",
   "skillMetadata": {
      "sections": [
         {
            "name": "Login",
            "fields": [
               {
                  "name": "email",
                  "type": "email",
                  "label": "Email",
                  "value": ""
               },
               {
                  "name": "password",
                  "type": "password",
                  "label": "Password",
                  "value": ""
               }
            ]
         }
      ]
   }
}

This feature is still under development and will likely change, but we wanted to get it out to developers ASAP since this is such a valuable mechanism.

FIXES

  • ISSUE #960: Stop command would stop stopping if any skill handler for mycroft.stop has an error (and stops). (#961)
  • ISSUE #950: Upgrade netifaces in requirements.txt to netifaces==0.10.6 (#951)
  • FIX: Using an undeclared “logger” could crash during exception handling (#963,#964)

MSM Enhancements

  • Clarified MSM return codes, distinguishing ‘duplicate’ and ‘missing’ skill requests (thanks el-tocino!) (#945)
  • FIX: Correct user ownership on /opt/mycroft subdirectories when needed (#947)

Misc

  • Add a standard commit message template (#952)
  • Restrict requirement to mock==2.0.0 (#949)
  • Upgrade requirement to netifaces==0.1.6 (#951)

Mark 1 Arduino Code Released

Last, but not least:  We released the code used to drive the Arduino which controls the faceplate and interacts with the knob on the Mark 1.  You can find it all in the enclosure-mark-1 repo on Github.  It is all released under the Apache 2.0 license, so have fun building on top of it for your own projects!