Each Message type listed contains a description outlining it's meaning or purpose. Where relevant, the Message type will also list the specific JSON data packets expected to be emitted with that Message, and the most common producers and consumers of the Message.
See the MessageBus documentation for further information on this service and examples of using Messages.
General
speak
Request to speak utterance
Data:
Copy {
"utterance" : < words to be spoken >,
"lang": < language code, e.g. en-us >
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'speak' ,
self.handler_speak)
def handler_speak ( self , message ):
# code to excecute when speak message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'speak' ,
{ "utterance" : < words to be spoken > ,
"lang" : < language code, e.g. en - us > }))
...
Copy python3 -m mycroft.messagebus.send 'speak' '{ "utterance": <words to be spoken>, "lang": <language code, e.g. en-us>}'
mycroft.internet.connected
Internet connection is now available (only generated on initial connection)
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'mycroft.internet.connected' ,
self.handler_mycroft_internet_connected)
def handler_mycroft_internet_connected ( self , message ):
# code to excecute when mycroft.internet.connected message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'mycroft.internet.connected' ))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.internet.connected'
mycroft.ready
Sent by start-up sequence when everything is ready for user interaction
skills/padatious_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'mycroft.ready' ,
self.handler_mycroft_ready)
def handler_mycroft_ready ( self , message ):
# code to excecute when mycroft.ready message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'mycroft.ready' ))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.ready'
mycroft.stop
Stop command (e.g. button pressed)
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'mycroft.stop' ,
self.handler_mycroft_stop)
def handler_mycroft_stop ( self , message ):
# code to excecute when mycroft.stop message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'mycroft.stop' ))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.stop'
mycroft.not.paired
Start the pairing process when this event is emitted.
Pairing Skill
Weather Skill
Wolfram Alpha Skill
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'mycroft.not.paired' ,
self.handler_mycroft_not_paired)
def handler_mycroft_not_paired ( self , message ):
# code to excecute when mycroft.not.paired message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'mycroft.not.paired' ))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.not.paired'
mycroft.paired
Pairing has completed
skills/skill_manager.py
enclosure/mark1/__init__.py
enclosure/generic/__init__.py
client/speech/__main__.py
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'mycroft.paired' ,
self.handler_mycroft_paired)
def handler_mycroft_paired ( self , message ):
# code to excecute when mycroft.paired message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'mycroft.paired' ))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.paired'
mycroft.awoken
Has come out of sleep mode
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'mycroft.awoken' ,
self.handler_mycroft_awoken)
def handler_mycroft_awoken ( self , message ):
# code to excecute when mycroft.awoken message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'mycroft.awoken' ))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.awoken'
mycroft.debug.log
log level can be: "CRITICAL" "ERROR" "WARNING" "INFO" "DEBUG" These correspond to the Python logging object.
The "bus" parameter allows turning the logging of all bus messages on/off.
Data:
Copy {
"level" : < log level >,
"bus": <True/False>
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'mycroft.debug.log' ,
self.handler_mycroft_debug_log)
def handler_mycroft_debug_log ( self , message ):
# code to excecute when mycroft.debug.log message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'mycroft.debug.log' ,
{
"level" : < log level > ,
"bus" : < True / False > }))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.debug.log' '{ "level" : <log level>, "bus": <True/False>}'
complete_intent_failure
Intent processing failed
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'complete_intent_failure' ,
self.handler_complete_intent_failure)
def handler_complete_intent_failure ( self , message ):
# code to excecute when complete_intent_failure message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'complete_intent_failure' ))
...
Copy python3 -m mycroft.messagebus.send 'complete_intent_failure'
configuration.updated
Notification to services that the configuration has changed and needs reloaded
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'configuration.updated' ,
self.handler_configuration_updated)
def handler_configuration_updated ( self , message ):
# code to excecute when configuration.updated message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'configuration.updated' ))
...
Copy python3 -m mycroft.messagebus.send 'configuration.updated'
Recognizer
recognizer_loop:wakeword
Wakeword was heard
Data:
Copy {
"utterance" : < wakeword heard >,
"session": < session ID >,
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'recognizer_loop:wakeword' ,
self.handler_wakeword)
def handler_wakeword ( self , message ):
# code to excecute when recognizer_loop:wakeword message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'recognizer_loop:wakeword' ,
{ "utterance" : < wakeword heard > ,
"session" : < session ID > ,}
))
...
Copy python3 -m mycroft.messagebus.send 'recognizer_loop:wakeword' '{ "utterance": <wakeword heard>, "session": <session ID>,}'
recognizer_loop:record_begin
Recording has started
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'recognizer_loop:record_begin' ,
self.handler_record_begin)
def handler_record_begin ( self , message ):
# code to excecute when recognizer_loop:record_begin message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'recognizer_loop:record_begin' ))
...
Copy python3 -m mycroft.messagebus.send 'recognizer_loop:record_begin'
recognizer_loop:record_end
Recording has ended
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'recognizer_loop:record_end' ,
self.handler_record_end)
def handler_record_end ( self , message ):
# code to excecute when recognizer_loop:record_end message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'recognizer_loop:record_end' ))
...
Copy python3 -m mycroft.messagebus.send 'recognizer_loop:record_end'
recognizer_loop:utterance
STT has detected the given text or text was injected as an utterance via the CLI.
Data:
Copy {
"utterances" : [text] ,
"lang" : self . stt .lang ,
"session" : session_id
}
client/speech/__main__.py
client/speech/listener.py
client/text/text_client.py
skills/__main__.py
client/text/text_client.py
messagebus/client/client.py
skills/intent_service.py
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'recognizer_loop:utterance' ,
self.handler_utterance)
def handler_utterance ( self , message ):
# code to excecute when recognizer_loop:utterance message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'recognizer_loop:utterance' ,
{ "utterances" : [text],
"lang" : self.stt.lang,
"session" : session_id}))
...
Copy python3 -m mycroft.messagebus.send 'recognizer_loop:utterance' '{ "utterances": [text], "lang": self.stt.lang, "session": session_id}'
recognizer_loop:audio_output_start
Text output (TTS) has begun
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize ( self ):
self . add_event ( 'recognizer_loop:audio_output_start' ,
self.handler_audio_output_start)
def handler_audio_output_start ( self , message ):
# code to excecute when recognizer_loop:audio_output_start message detected...
...
Copy ...
def some_method ( self ):
self . bus . emit ( Message ( 'recognizer_loop:audio_output_start' ))
...
Copy python3 -m mycroft.messagebus.send 'recognizer_loop:audio_output_start'
recognizer_loop:audio_output_end
Text output (TTS) has ended
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('recognizer_loop:audio_output_end',
self.handler_audio_output_end)
def handler_audio_output_end(self, message):
# code to excecute when recognizer_loop:audio_output_end message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('recognizer_loop:audio_output_end'))
...
Copy python3 -m mycroft.messagebus.send 'recognizer_loop:audio_output_end'
recognizer_loop:sleep
Go into "sleep" mode. Everything except "Hey Mycroft, wake up" will be ignored.
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('recognizer_loop:sleep',
self.handler_sleep)
def handler_sleep(self, message):
# code to excecute when recognizer_loop:sleep message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('recognizer_loop:sleep'))
...
Copy python3 -m mycroft.messagebus.send 'recognizer_loop:sleep'
recognizer_loop:wake_up
Come out of "sleep" mode.
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('recognizer_loop:wake_up',
self.handler_wake_up)
def handler_wake_up(self, message):
# code to excecute when recognizer_loop:wake_up message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('recognizer_loop:wake_up'))
...
Copy python3 -m mycroft.messagebus.send 'recognizer_loop:wake_up'
Enclosure
enclosure.notify.no_internet
Detected a connection error during STT
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('enclosure.notify.no_internet',
self.handler_enclosure_notify_no_internet)
def handler_enclosure_notify_no_internet(self, message):
# code to excecute when enclosure.notify.no_internet message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('enclosure.notify.no_internet'))
...
Copy python3 -m mycroft.messagebus.send 'enclosure.notify.no_internet'
enclosure.mouth.viseme_list
start: timestamp for audio starts (unix epoch) END_TIME: time in seconds from "start" until the end of the viseme CODE can be 0 = shape for sounds like 'y' or 'aa' 1 = shape for sounds like 'aw' 2 = shape for sounds like 'uh' or 'r' 3 = shape for sounds like 'th' or 'sh' 4 = neutral shape for no sound 5 = shape for sounds like 'f' or 'v' 6 = shape for sounds like 'oy' or 'ao'
Data:
Copy {
"start": timestamp,
"visemes": [[CODE,END_TIME],...]
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('enclosure.mouth.viseme_list',
self.handler_enclosure_mouth_viseme_list)
def handler_enclosure_mouth_viseme_list(self, message):
# code to excecute when enclosure.mouth.viseme_list message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('enclosure.mouth.viseme_list',
{
"start": timestamp,
"visemes": [[CODE,END_TIME],...]}))
...
Copy python3 -m mycroft.messagebus.send 'enclosure.mouth.viseme_list' '{ "start": timestamp, "visemes": [[CODE,END_TIME],...]}'
mycroft.eyes.default
Change eyes to default color
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.eyes.default',
self.handler_mycroft_eyes_default)
def handler_mycroft_eyes_default(self, message):
# code to excecute when mycroft.eyes.default message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.eyes.default'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.eyes.default'
Microphone Behavior
mycroft.mic.listen
Begin recording for STT processing
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.mic.listen',
self.handler_mycroft_mic_listen)
def handler_mycroft_mic_listen(self, message):
# code to excecute when mycroft.mic.listen message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.mic.listen'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.mic.listen'
mycroft.mic.mute
Turn off the mic (no wakeword or STT processing)
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.mic.mute',
self.handler_mycroft_mic_mute)
def handler_mycroft_mic_mute(self, message):
# code to excecute when mycroft.mic.mute message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.mic.mute'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.mic.mute'
mycroft.mic.unmute
Turn on the mic (enable wakeword and STT processing)
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.mic.unmute',
self.handler_mycroft_mic_unmute)
def handler_mycroft_mic_unmute(self, message):
# code to excecute when mycroft.mic.unmute message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.mic.unmute'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.mic.unmute'
Audio Playback
mycroft.audio.service.play
Start playback of tracklist
skills/audioservice.py
playback-control
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.play',
self.handler_mycroft_audio_service_play)
def handler_mycroft_audio_service_play(self, message):
# code to excecute when mycroft.audio.service.play message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.play'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.play'
mycroft.audio.service.stop
Stop playback
skills/audioservice.py
playback-control
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.stop',
self.handler_mycroft_audio_service_stop)
def handler_mycroft_audio_service_stop(self, message):
# code to excecute when mycroft.audio.service.stop message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.stop'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.stop'
mycroft.audio.service.pause
Pause playback (if supported)
skills/audioservice.py
playback-control
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.pause',
self.handler_mycroft_audio_service_pause)
def handler_mycroft_audio_service_pause(self, message):
# code to excecute when mycroft.audio.service.pause message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.pause'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.pause'
mycroft.audio.service.resume
Resume playback (if supported by backend)
skills/audioservice.py
playback-control
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.resume',
self.handler_mycroft_audio_service_resume)
def handler_mycroft_audio_service_resume(self, message):
# code to excecute when mycroft.audio.service.resume message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.resume'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.resume'
mycroft.audio.service.next
Skip to next track
skills/audioservice.py
playback-control
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.next',
self.handler_mycroft_audio_service_next)
def handler_mycroft_audio_service_next(self, message):
# code to excecute when mycroft.audio.service.next message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.next'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.next'
mycroft.audio.service.prev
Skip to previous track
skills/audioservice.py
playback-control
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.prev',
self.handler_mycroft_audio_service_prev)
def handler_mycroft_audio_service_prev(self, message):
# code to excecute when mycroft.audio.service.prev message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.prev'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.prev'
mycroft.audio.service.track_info
Request track info from audio service
skills/audioservice.py
playback-control
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.track_info',
self.handler_mycroft_audio_service_track_info)
def handler_mycroft_audio_service_track_info(self, message):
# code to excecute when mycroft.audio.service.track_info message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.track_info'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.track_info'
mycroft.audio.service.track_info_reply
Reply to track info request
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.track_info_reply',
self.handler_mycroft_audio_service_track_info_reply)
def handler_mycroft_audio_service_track_info_reply(self, message):
# code to excecute when mycroft.audio.service.track_info_reply message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.track_info_reply'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.track_info_reply'
mycroft.audio.service.list_backends
Returns list of available backends.
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.audio.service.list_backends',
self.handler_mycroft_audio_service_list_backends)
def handler_mycroft_audio_service_list_backends(self, message):
# code to excecute when mycroft.audio.service.list_backends message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.audio.service.list_backends'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.audio.service.list_backends'
Volume Control
mycroft.volume.increase
Enclosure Volume up
Data:
client/enclosure/__init__.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.increase',
self.handler_mycroft_volume_increase)
def handler_mycroft_volume_increase(self, message):
# code to excecute when mycroft.volume.increase message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.increase',
{"play_sound": True}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.increase' '{"play_sound": True}'
mycroft.volume.decrease
Enclosure Volume down
Data:
client/enclosure/__init__.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.decrease',
self.handler_mycroft_volume_decrease)
def handler_mycroft_volume_decrease(self, message):
# code to excecute when mycroft.volume.decrease message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.decrease',
{"play_sound": True}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.decrease' '{"play_sound": True}'
mycroft.volume.mute
Enclosure Volume muted
Data:
Copy {"speak_message": True}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.mute',
self.handler_mycroft_volume_mute)
def handler_mycroft_volume_mute(self, message):
# code to excecute when mycroft.volume.mute message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.mute',
{"speak_message": True}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.mute' '{"speak_message": True}'
mycroft.volume.unmute
Enclosure Volume unmuted
Data:
Copy {"speak_message": True}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.unmute',
self.handler_mycroft_volume_unmute)
def handler_mycroft_volume_unmute(self, message):
# code to excecute when mycroft.volume.unmute message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.unmute',
{"speak_message": True}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.unmute' '{"speak_message": True}'
mycroft.volume.set
Set enclosure volume (0.0 = no output, 1.0 = loudest possible)
Data:
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.set',
self.handler_mycroft_volume_set)
def handler_mycroft_volume_set(self, message):
# code to excecute when mycroft.volume.set message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.set',
{"percent": float}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.set' '{"percent": float}'
mycroft.volume.get
Request volume level
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.get',
self.handler_mycroft_volume_get)
def handler_mycroft_volume_get(self, message):
# code to excecute when mycroft.volume.get message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.get'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.get'
mycroft.volume.get.response
Data:
Copy {
"percent": <volume percentage>,
"muted": <true/false>
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.get.response',
self.handler_mycroft_volume_get_response)
def handler_mycroft_volume_get_response(self, message):
# code to excecute when mycroft.volume.get.response message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.get.response',
{"percent": <volume percentage>,
"muted": <true/false>}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.get.response' '{ "percent": <volume percentage>, "muted": <true/false>}'
mycroft.volume.duck
Reduce the volume level temporarily
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.duck',
self.handler_mycroft_volume_duck)
def handler_mycroft_volume_duck(self, message):
# code to excecute when mycroft.volume.duck message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.duck'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.duck'
mycroft.volume.unduck
Restore the volume level
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.volume.unduck',
self.handler_mycroft_volume_unduck)
def handler_mycroft_volume_unduck(self, message):
# code to excecute when mycroft.volume.unduck message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.volume.unduck'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.volume.unduck'
Mycroft Skill Core
mycroft.skill.handler.start
Data:
Copy {handler: class/function name}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skill.handler.start',
self.handler_mycroft_skill_handler_start)
def handler_mycroft_skill_handler_start(self, message):
# code to excecute when mycroft.skill.handler.start message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skill.handler.start',
{handler: class/function name}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skill.handler.start' '{handler: class/function name}'
mycroft.skill.handler.complete
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skill.handler.complete',
self.handler_mycroft_skill_handler_complete)
def handler_mycroft_skill_handler_complete(self, message):
# code to excecute when mycroft.skill.handler.complete message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skill.handler.complete'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skill.handler.complete'
mycroft.skill.enable_intent
Enable disabled intent
Data:
Copy {"intent_name": "name"}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skill.enable_intent',
self.handler_mycroft_skill_enable_intent)
def handler_mycroft_skill_enable_intent(self, message):
# code to excecute when mycroft.skill.enable_intent message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skill.enable_intent',
{"intent_name": "name"}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skill.enable_intent' '{"intent_name": "name"}'
mycroft.skill.disable_intent
Disable intent
Data:
Copy {"intent_name": "name"}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skill.disable_intent',
self.handler_mycroft_skill_disable_intent)
def handler_mycroft_skill_disable_intent(self, message):
# code to excecute when mycroft.skill.disable_intent message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skill.disable_intent',
{"intent_name": "name"}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skill.disable_intent' '{"intent_name": "name"}'
mycroft.skills.loaded
A Skill has been loaded
Data:
Copy {
"id": <skill ID>,
"name": <skill name>,
"path": <skill directory>,
"modified": <modified time>
}
mycroft/skills/intent_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skills.loaded',
self.handler_mycroft_skills_loaded)
def handler_mycroft_skills_loaded(self, message):
# code to excecute when mycroft.skills.loaded message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skills.loaded',
{"id": <skill ID>,
"name": <skill name>,
"folder": <skill directory>,
"modified": <modified time>}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skills.loaded' '{ "id": <skill ID>, "name": <skill name>, "folder": <skill directory>, "modified": <modified time>}'
mycroft.skills.loading_failure
A Skill has failed to load
Data:
Copy {
"id": <skill ID>,
"folder": <skill directory>
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skills.loading_failure',
self.handler_mycroft_skills_loading_failure)
def handler_mycroft_skills_loading_failure(self, message):
# code to excecute when mycroft.skills.loading_failure message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skills.loading_failure',
{"id": <skill ID>,
"folder": <skill directory>}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skills.loading_failure' '{ "id": <skill ID>, "folder": <skill directory>}'
mycroft.skills.shutdown
A Skill has shutdown
Data:
Copy {
"id": <skill ID>,
"folder": <skill directory>
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skills.shutdown',
self.handler_mycroft_skills_shutdown)
def handler_mycroft_skills_shutdown(self, message):
# code to excecute when mycroft.skills.shutdown message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skills.shutdown',
{"id": <skill ID>,
"folder": <skill directory>}))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skills.shutdown' '{ "id": <skill ID>, "folder": <skill directory>}'
mycroft.skills.initialized
Upon startup, all skills have been loaded
mycroft/skills/skill_manager.py
mycroft/skills/padatious_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skills.initialized',
self.handler_mycroft_skills_initialized)
def handler_mycroft_skills_initialized(self, message):
# code to excecute when mycroft.skills.initialized message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skills.initialized'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skills.initialized'
mycroft.skills.list
List of loaded skills (response to 'skillmanager.list')
Data:
Copy {"skills": [<list of skill IDs>] }
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skills.list',
self.handler_mycroft_skills_list)
def handler_mycroft_skills_list(self, message):
# code to excecute when mycroft.skills.list message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skills.list',
{"skills": [<list of skill IDs>] }))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skills.list' '{"skills": [<list of skill IDs>] }'
mycroft.skills.settings.update
Pull new skill settings from the server
mycroft/skills/settings.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('mycroft.skills.settings.update',
self.handler_mycroft_skills_settings_update)
def handler_mycroft_skills_settings_update(self, message):
# code to excecute when mycroft.skills.settings.update message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('mycroft.skills.settings.update'))
...
Copy python3 -m mycroft.messagebus.send 'mycroft.skills.settings.update'
Mycroft Skill Manager (MSM)
msm.updating
MSM install has begun
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.updating',
self.handler_msm_updating)
def handler_msm_updating(self, message):
# code to excecute when msm.updating message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.updating'))
...
Copy python3 -m mycroft.messagebus.send 'msm.updating'
msm.installing
MSM update has begun
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.installing',
self.handler_msm_installing)
def handler_msm_installing(self, message):
# code to excecute when msm.installing message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.installing'))
...
Copy python3 -m mycroft.messagebus.send 'msm.installing'
msm.install.succeeded
MSM install succeeded for given skill
Data:
Copy { "skill" : <skill name> }
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.install.succeeded',
self.handler_msm_install_succeeded)
def handler_msm_install_succeeded(self, message):
# code to excecute when msm.install.succeeded message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.install.succeeded',
{ "skill" : <skill name> }))
...
Copy python3 -m mycroft.messagebus.send 'msm.install.succeeded' '{ "skill" : <skill name> }'
msm.install.failed
MSM install failed for given skill
Data:
Copy {
"skill" : <skill name>,
"error": <error code>
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.install.failed',
self.handler_msm_install_failed)
def handler_msm_install_failed(self, message):
# code to excecute when msm.install.failed message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.install.failed',
{"skill" : <skill name>,
"error": <error code>}))
...
Copy python3 -m mycroft.messagebus.send 'msm.install.failed' '{ "skill" : <skill name>, "error": <error code>}'
msm.installed
MSM install is complete
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.installed',
self.handler_msm_installed)
def handler_msm_installed(self, message):
# code to excecute when msm.installed message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.installed'))
...
Copy python3 -m mycroft.messagebus.send 'msm.installed'
msm.updated
MSM update is complete
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.updated',
self.handler_msm_updated)
def handler_msm_updated(self, message):
# code to excecute when msm.updated message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.updated'))
...
Copy python3 -m mycroft.messagebus.send 'msm.updated'
msm.removing
MSM remove has begun
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.removing',
self.handler_msm_removing)
def handler_msm_removing(self, message):
# code to excecute when msm.removing message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.removing'))
...
Copy python3 -m mycroft.messagebus.send 'msm.removing'
msm.remove.succeeded
MSM remove succeeded for given skill
Data:
Copy { "skill" : <skill name> }
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.remove.succeeded',
self.handler_msm_remove_succeeded)
def handler_msm_remove_succeeded(self, message):
# code to excecute when msm.remove.succeeded message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.remove.succeeded',
{ "skill" : <skill name> }))
...
Copy python3 -m mycroft.messagebus.send 'msm.remove.succeeded' '{ "skill" : <skill name> }'
msm.remove.failed
MSM remove failed for given skill
Data:
Copy {
"skill" : <skill name>,
"error": <error code>
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.remove.failed',
self.handler_msm_remove_failed)
def handler_msm_remove_failed(self, message):
# code to excecute when msm.remove.failed message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.remove.failed',
{"skill" : <skill name>,
"error": <error code>}))
...
Copy python3 -m mycroft.messagebus.send 'msm.remove.failed' '{ "skill" : <skill name>, "error": <error code>}'
msm.removed
MSM remove is complete
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('msm.removed',
self.handler_msm_removed)
def handler_msm_removed(self, message):
# code to excecute when msm.removed message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('msm.removed'))
...
Copy python3 -m mycroft.messagebus.send 'msm.removed'
Skill Manager
skillmanager.deactivate
Deactivate a skill. Activate by typing ":deactivate " in the CLI
Data:
Copy {'skill': <skill directory name>}
CLI (client/text/main.py
)
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('skillmanager.deactivate',
self.handler_skillmanager_deactivate)
def handler_skillmanager_deactivate(self, message):
# code to excecute when skillmanager.deactivate message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('skillmanager.deactivate',
{'skill': <skill directory name>}))
...
Copy python3 -m mycroft.messagebus.send 'skillmanager.deactivate' '{'skill': <skill directory name>}'
skillmanager.list
List installed skills. Activate by typing ":list" in the CLI
CLI (client/text/main.py
)
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('skillmanager.list',
self.handler_skillmanager_list)
def handler_skillmanager_list(self, message):
# code to excecute when skillmanager.list message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('skillmanager.list'))
...
Copy python3 -m mycroft.messagebus.send 'skillmanager.list'
skillmanager.update
Request immediate update of all skills
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('skillmanager.update',
self.handler_skillmanager_update)
def handler_skillmanager_update(self, message):
# code to excecute when skillmanager.update message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('skillmanager.update'))
...
Copy python3 -m mycroft.messagebus.send 'skillmanager.update'
Messagebus Connection
open
websocket connection has closed
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('open',
self.handler_open)
def handler_open(self, message):
# code to excecute when open message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('open'))
...
Copy python3 -m mycroft.messagebus.send 'open'
close
websocket connection was lost, reconnecting
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('close',
self.handler_close)
def handler_close(self, message):
# code to excecute when close message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('close'))
...
Copy python3 -m mycroft.messagebus.send 'close'
reconnecting
websocket connection has opened
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('reconnecting',
self.handler_reconnecting)
def handler_reconnecting(self, message):
# code to excecute when reconnecting message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('reconnecting'))
...
Copy python3 -m mycroft.messagebus.send 'reconnecting'
System Administrative Actions
system.wifi.setup
Kick off a a wifi-setup session
mycroft-wifi-setup: mycroft_admin_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('system.wifi.setup',
self.handler_system_wifi_setup)
def handler_system_wifi_setup(self, message):
# code to excecute when system.wifi.setup message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('system.wifi.setup'))
...
Copy python3 -m mycroft.messagebus.send 'system.wifi.setup'
system.wifi.reset
Clear the saved wifi settings
mycroft-wifi-setup: mycroft_admin_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('system.wifi.reset',
self.handler_system_wifi_reset)
def handler_system_wifi_reset(self, message):
# code to excecute when system.wifi.reset message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('system.wifi.reset'))
...
Copy python3 -m mycroft.messagebus.send 'system.wifi.reset'
system.ntp.sync
Force the system clock to synchronize with NTP servers
mycroft-wifi-setup: mycroft_admin_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('system.ntp.sync',
self.handler_system_ntp_sync)
def handler_system_ntp_sync(self, message):
# code to excecute when system.ntp.sync message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('system.ntp.sync'))
...
Copy python3 -m mycroft.messagebus.send 'system.ntp.sync'
system.ssh.enable
Configure system to allow SSH connections
mycroft-wifi-setup: mycroft_admin_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('system.ssh.enable',
self.handler_system_ssh_enable)
def handler_system_ssh_enable(self, message):
# code to excecute when system.ssh.enable message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('system.ssh.enable'))
...
Copy python3 -m mycroft.messagebus.send 'system.ssh.enable'
system.ssh.disable
Configure system to block SSH connections
mycroft-wifi-setup: mycroft_admin_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('system.ssh.disable',
self.handler_system_ssh_disable)
def handler_system_ssh_disable(self, message):
# code to excecute when system.ssh.disable message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('system.ssh.disable'))
...
Copy python3 -m mycroft.messagebus.send 'system.ssh.disable'
system.reboot
Force a Linux reboot
mycroft-wifi-setup: mycroft_admin_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('system.reboot',
self.handler_system_reboot)
def handler_system_reboot(self, message):
# code to excecute when system.reboot message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('system.reboot'))
...
Copy python3 -m mycroft.messagebus.send 'system.reboot'
system.shutdown
Force a Linux shutdown
mycroft-wifi-setup: mycroft_admin_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('system.shutdown',
self.handler_system_shutdown)
def handler_system_shutdown(self, message):
# code to excecute when system.shutdown message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('system.shutdown'))
...
Copy python3 -m mycroft.messagebus.send 'system.shutdown'
system.update
Force an apt-get update on 'mycroft-mark-1' or 'mycroft-picroft' package (as appropriate)
mycroft-wifi-setup: mycroft_admin_service.py
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('system.update',
self.handler_system_update)
def handler_system_update(self, message):
# code to excecute when system.update message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('system.update'))
...
Copy python3 -m mycroft.messagebus.send 'system.update'
Common Play System
play:query
Data:
Copy { "phrase": <something to be played> }
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('play:query',
self.handler_query)
def handler_query(self, message):
# code to excecute when play:query message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('play:query',
{ "phrase": <something to be played> }))
...
Copy python3 -m mycroft.messagebus.send 'play:query' '{ "phrase": <something to be played> }'
play:query.response
There are three responses to a play:query
. These are not intended to be consumed directly by a Skill, see the methods available in the CommonPlaySkill Class.
Confirm Search
The initial response confirms that a search is being attempted. It also extends the Skill timeout while it looks for a match.
Data:
Copy {
"phrase": search_phrase,
"skill_id": self.skill_id,
"searching": True
}
Search Result
Emitted if a result is found. Responses from the Play services must be received within 1 second to be included.
Data:
Copy {
"phrase": phrase,
"skill_id": self.skill_id,
"callback_data": data,
"service_name": self.spoken_name,
"conf": confidence
}
phrase
- the phrase that was queried for this response
id
- uniquely identifies the skill, normally the Skill's self.skill_id
callback_data
- optional data structure to return in play:start
service_name
- the name of the service returning the highest confidence in a speakable format
conf
- the confidence it can handle the request, between 0.0 and 1.0
Confidence guidelines:
1.0 = exact command match, e.g. "play npr news"
>0.9 = multi-key match for database entry, e.g. "play madonna's lucky star" or "play artist madona" (matches "artist" and "madonna"). For each additional key over 2, add 0.1 to the confidence, so "play madonna's lucky star on spotify" would be 0.91 for three keywords
>0.8 = single-key match for database title entry, e.g. "play lucky star"
>0.7 = single-key match for database artist or group, e.g. "play madonna"
>0.6 = single-key match for database genre or category, e.g. "play reggae"
>0.5 = generic match, e.g. "play some music" or "play a movie"
Search Failed
No suitable result was found.
Data:
Copy {
"phrase": search_phrase,
"skill_id": self.skill_id,
"searching": False
}
play:start
skill_id -- the unique ID of the skill that is being invoked
phrase -- the original phrase user said, e.g. "some thing" from utterance "play some thing"
callback_data -- (optional) data the skill can use to start playback
Data:
Copy {
"skill_id": <skill_id>,
"phrase": phrase,
"callback_data": optional_data
}
Common Query System
question:query
Data:
Copy {"phrase": "complete question"}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('question:query',
self.handler_query)
def handler_query(self, message):
# code to excecute when question:query message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('question:query',
{"phrase": "complete question"}))
...
Copy python3 -m mycroft.messagebus.send 'question:query' '{"phrase": "complete question"}'
question:query.response
skill_id -- the unique ID of the skill that is being invoked
phrase -- the original phrase user said, e.g. "some thing" from utterance "how tall was abraham lincoln"
conf -- confidence level of answers validity
callback_data -- (optional) data the skill can use for any additional actions (such as image url or similar)
searching -- true if more time is needed to complete the search, otherwise false
Data:
Copy {
"phrase": phrase,
"skill_id": <skill_id>,
"answer": "answer string",
"conf": confidence,
"callback_data": <json data>,
"searching": true/false
}
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('question:query.response',
self.handler_query_response)
def handler_query_response(self, message):
# code to excecute when question:query.response message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('question:query.response',
{"phrase": phrase,
"skill_id": <skill_id>,
"answer": "answer string",
"conf": confidence,
"callback_data": <json data>,
"searching": true/false}))
...
Copy python3 -m mycroft.messagebus.send 'question:query.response' '{ "phrase": phrase, "skill_id": <skill_id>, "answer": "answer string", "conf": confidence, "callback_data": <json data>, "searching": true/false}'
question:action
skill_id -- the unique ID of the skill that is being invoked
phrase -- the original phrase user said, e.g. "some thing" from utterance "how tall was abraham lincoln"
callback_data -- (optional) data the skill can use to take additional actions
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('question:action',
self.handler_action)
def handler_action(self, message):
# code to excecute when question:action message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('question:action'))
...
Copy python3 -m mycroft.messagebus.send 'question:action'
Mycroft Alarm Skill
private.mycroftai.has_alarm
Count of running alarms (0 == no alarms)
Data:
Copy {"active_alarms": COUNT }
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('private.mycroftai.has_alarm',
self.handler_private_mycroftai_has_alarm)
def handler_private_mycroftai_has_alarm(self, message):
# code to excecute when private.mycroftai.has_alarm message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('private.mycroftai.has_alarm',
{"active_alarms": COUNT }))
...
Copy python3 -m mycroft.messagebus.send 'private.mycroftai.has_alarm' '{"active_alarms": COUNT }'
PROPOSED
skill.namespace.*
e.g. "skill.mycroft.noftify.alarm_changed" or "skill.jaguar.notify.car_stopped"
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('skill.namespace.*',
self.handler_skill_namespace_*)
def handler_skill_namespace_*(self, message):
# code to excecute when skill.namespace.* message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('skill.namespace.*'))
...
Copy python3 -m mycroft.messagebus.send 'skill.namespace.*'
private.github_username.*
for private (not intended to be used by anyone else)
Usage:
Message handler in MycroftSkill Generating Message from MycroftSkill Command line invocation
Copy ...
def initialize(self):
self.add_event('private.github_username.*',
self.handler_private_github_username_*)
def handler_private_github_username_*(self, message):
# code to excecute when private.github_username.* message detected...
...
Copy ...
def some_method(self):
self.bus.emit(Message('private.github_username.*'))
...
Copy python3 -m mycroft.messagebus.send 'private.github_username.*'