MQTT published hermes topics

Hi,

I’m looking over MQTT published topics on hermes, mainly to implement two things in Rhasspy:

I have the rhasspy reference here: https://rhasspy.readthedocs.io/en/latest/reference/#mqtt-api

Anyway rhasspy miss a lot of published topics for this:

Here are the needed topics for the logger:

‘ON_HOTWORD’: ‘hermes/hotword/default/detected’,
‘ON_LISTENING’: ‘hermes/asr/startListening’,
‘ON_THINK’: ‘hermes/asr/textCaptured’,
‘ON_ERROR’: ‘hermes/nlu/intentNotRecognized’,
‘ON_SUCCESS’: ‘hermes/nlu/intentParsed’,
‘ON_SAY’: ‘hermes/tts/say’,
‘ON_PLAY_FINISHED’: ‘hermes/audioServer/{}/playFinished’,

And for the SLC:

_SUB_ON_HOTWORD = ‘hermes/hotword/+/detected’
_SUB_ON_SAY = ‘hermes/tts/say’
_SUB_ON_THINK = ‘hermes/asr/textCaptured’
_SUB_ON_LISTENING = ‘hermes/asr/startListening’
_SUB_ON_HOTWORD_TOGGLE_ON = ‘hermes/hotword/toggleOn’
_SUB_LEDS_ON_ERROR = ‘hermes/nlu/intentNotRecognized’
_SUB_LEDS_ON_SUCCESS = ‘hermes/nlu/intentParsed’
_SUB_ON_PLAY_FINISHED = ‘hermes/audioServer/{}/playFinished’
_SUB_ON_TTS_FINISHED = ‘hermes/tts/sayFinished’

There is stuff in rhasspy/fr/transition/xxx but these are dependant from the language profile and the services used, so not really usefull for such tools as the tool would parse the rhasspy profile to know everything regarding language used and services used.

Is it planned to implemented missing hermes topics so we have a listener on hermes/ topics knowing all happening ?

The consensus in Fully support the Hermes or Hermod protocol was that the Hermes protocol will be implemented as completely as possible.

If you’re looking at https://github.com/rhasspy/rhasspy-hermes you will see that (I think) all the topics you’re talking about are implemented. These are the basic Python classes for Hermes protocol support in Rhasspy, so eventually these can all be implemented in Rhasspy’s services.

Just have some patience :slight_smile: Or contribute code for what you need :wink:

2 Likes

Thanks, nice to see it will come. No patience problem here, just wanted to know where is the consensus regarding this :wink:

About https://github.com/rhasspy/rhasspy-hermes will it end up into docker container then ? Or should we install it apart on the pi ?

Regarding contributing, I must admit that understanding all classes, imbrications and differents repos is not easy to get.

There will probably multiple ways: Docker or supervisord. You can already see one way of combining them in https://github.com/rhasspy/rhasspy-voltron. But the migration to separate services is still all work in progress.

2 Likes