seems like I need to ask the same question, but with other circumstances. Today I received my m5atom and flashed it successfully. Wakeword is working, receiving speech, transforming it to an intent is working, but my m5 doesnāt answer.
I have Rhasspy installed as a docker container on a pi4, using mosquitto as my external MQTT broker in another docker container on the same pi4, trying to make automation with node-red (not sure if I will count on node-red in the future). As I am new with Rhasspy and this is my first trial, I am even not sure if my settings are right.
Base station settings:
{
"dialogue": {
"satellite_site_ids": "rhasspy-mobile-chris,atom1",
"system": "rhasspy"
},
"handle": {
"remote": {
"url": "http://192.168.XXX.XXX:8081/intent"
},
"satellite_site_ids": "rhasspy-mobile-chris,atom1",
"system": "remote"
},
"intent": {
"satellite_site_ids": "rhasspy-mobile-chris,atom1",
"system": "fsticuffs"
},
"mqtt": {
"enabled": true,
"host": "192.168.XXX.XXX",
"password": "...",
"site_id": "pi4base",
"username": "..."
},
"speech_to_text": {
"satellite_site_ids": "rhasspy-mobile-chris,atom1",
"system": "kaldi"
},
"text_to_speech": {
"satellite_site_ids": "rhasspy-mobile-chris,atom1",
"system": "nanotts"
},
"wake": {
"porcupine": {
"keyword_path": "jarvis_raspberry-pi.ppn",
"udp_audio": "172.21.0.2:20000"
},
"satellite_site_ids": "rhasspy-mobile-chris,atom1",
"system": "porcupine"
}
}
172.21.0.2 is the docker container ID.
Base station log if I ask āJarvisā something:
[DEBUG:2021-11-08 22:20:01,979] rhasspyserver_hermes: Sent 477 char(s) to websocket
[DEBUG:2021-11-08 22:20:01,975] rhasspyserver_hermes: Sent 477 char(s) to websocket
[DEBUG:2021-11-08 22:20:01,970] rhasspyserver_hermes: Sent 477 char(s) to websocket
Thatās itā¦
In Node-Red this is the message I get from MQTT in:
{
"topic": "hermes/intent/GetDate",
"payload": {
"input": "Welches Datum haben wir",
"intent": { "intentName": "GetDate", "confidenceScore": 1 },
"siteId": "atom1",
"id": null,
"slots": [],
"sessionId": "atom1-jarvis_raspberry-pi-90dc7f88-d154-454a-9afc-551a29286664",
"customData": "jarvis_raspberry-pi",
"asrTokens": [
[
{
"value": "Welches",
"confidence": 1,
"rangeStart": 0,
"rangeEnd": 7,
"time": null
},
{
"value": "Datum",
"confidence": 1,
"rangeStart": 8,
"rangeEnd": 13,
"time": null
},
{
"value": "haben",
"confidence": 1,
"rangeStart": 14,
"rangeEnd": 19,
"time": null
},
{
"value": "wir",
"confidence": 1,
"rangeStart": 20,
"rangeEnd": 23,
"time": null
}
]
],
"asrConfidence": 1,
"rawInput": "welches datum haben wir",
"wakewordId": "jarvis_raspberry-pi",
"lang": null
},
"qos": 0,
"retain": false,
"_msgid": "7ca31bd7.a8ed74"
}
And this is the output I hand over to MQTT out:
{
"topic": "hermes/intent/GetDate",
"payload": {
"input": "Welches Datum haben wir",
"intent": { "intentName": "GetDate", "confidenceScore": 1 },
"siteId": "atom1",
"id": null,
"slots": [],
"sessionId": "atom1-jarvis_raspberry-pi-90dc7f88-d154-454a-9afc-551a29286664",
"customData": "jarvis_raspberry-pi",
"asrTokens": [
[
{
"value": "Welches",
"confidence": 1,
"rangeStart": 0,
"rangeEnd": 7,
"time": null
},
{
"value": "Datum",
"confidence": 1,
"rangeStart": 8,
"rangeEnd": 13,
"time": null
},
{
"value": "haben",
"confidence": 1,
"rangeStart": 14,
"rangeEnd": 19,
"time": null
},
{
"value": "wir",
"confidence": 1,
"rangeStart": 20,
"rangeEnd": 23,
"time": null
}
]
],
"asrConfidence": 1,
"rawInput": "welches datum haben wir",
"wakewordId": "jarvis_raspberry-pi",
"lang": null,
"text": "Heute ist Montag der 8. November 2021"
},
"qos": 0,
"retain": false,
"_msgid": "7ca31bd7.a8ed74"
}
And this is the JSON of my node-red flow:
[
{
"id": "de4ca1a1.9c245",
"type": "tab",
"label": "Rhasspy_MQTT",
"disabled": false,
"info": ""
},
{
"id": "d3a54a61.5f5bd",
"type": "mqtt in",
"z": "de4ca1a1.9c245",
"name": "mosquitto",
"topic": "hermes/intent/#",
"qos": "2",
"datatype": "json",
"broker": "8494e798.106348",
"nl": false,
"rap": true,
"rh": 0,
"x": 220,
"y": 140,
"wires": [
[
"3b203211.bde36e",
"6e70ab0.d19a954",
"2c47428c.4b82e6"
]
]
},
{
"id": "d11f5476.b548b8",
"type": "mqtt out",
"z": "de4ca1a1.9c245",
"name": "mosquitto",
"topic": "hermes/dialogueManager/endSession,hermes/tts/say",
"qos": "",
"retain": "",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "8494e798.106348",
"x": 1320,
"y": 160,
"wires": []
},
{
"id": "b82bc0c9.cae788",
"type": "debug",
"z": "de4ca1a1.9c245",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 1140,
"y": 400,
"wires": []
},
{
"id": "6e70ab0.d19a954",
"type": "switch",
"z": "de4ca1a1.9c245",
"name": "Intenterkennung",
"property": "payload.intent.intentName",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "GetTime",
"vt": "str"
},
{
"t": "eq",
"v": "GetDate",
"vt": "str"
},
{
"t": "else"
}
],
"checkall": "true",
"repair": true,
"outputs": 3,
"x": 430,
"y": 240,
"wires": [
[
"97ac5e01.dbf1e"
],
[
"524df9cb.70e5"
],
[
"e9e436e0.3c4d7"
]
]
},
{
"id": "97ac5e01.dbf1e",
"type": "function",
"z": "de4ca1a1.9c245",
"name": "Zeitausgabe",
"func": "var timeString = new Date().toLocaleTimeString([],\n{\nhour: \"2-digit\", \nminute: \"2-digit\",\nhour12: false\n})\n\nreturn {\npayload: \"Es ist \" + timeString\n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 620,
"y": 200,
"wires": [
[
"d11f5476.b548b8",
"b82bc0c9.cae788"
]
]
},
{
"id": "e9e436e0.3c4d7",
"type": "template",
"z": "de4ca1a1.9c245",
"name": "Unrecognized",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "plain",
"template": "{\n \"data\": {\n \"intent\": {\n \"name\": \"unrecognized\",\n \"confidence\": 0\n }\n },\n \"speech\": {\n \"text\": \"Kommando nicht erkannt.\"\n }\n}",
"output": "json",
"x": 630,
"y": 300,
"wires": [
[
"d11f5476.b548b8",
"b82bc0c9.cae788"
]
]
},
{
"id": "524df9cb.70e5",
"type": "function",
"z": "de4ca1a1.9c245",
"name": "Datumsausgabe",
"func": "var sessionId=flow.get('sessionId')\nvar siteId=flow.get('siteId')\nvar datum = new Date();\nvar tag = datum.getDay();\nvar wotag = wochentag(tag);\n//log(wotag);\nvar now = new Date();\nvar dd = now.getDate();\nvar mm = now.getMonth()+1;\nvar monat =\"\";\nif (mm == 1) { monat = \"Januar\";} \nelse if (mm == 2) { monat = \"Februar\";} \nelse if (mm == 3) { monat = \"MƤrz\";} \nelse if (mm == 4) { monat = \"April\";} \nelse if (mm == 5) { monat = \"Mai\";} \nelse if (mm == 6) { monat = \"Juni\";} \nelse if (mm == 7) { monat = \"Juli\";} \nelse if (mm == 8) { monat = \"August\";} \nelse if (mm == 9) { monat = \"September\";} \nelse if (mm == 10) { monat = \"Oktober\";} \nelse if (mm == 11) { monat = \"November\";} \nelse if (mm == 12) { monat = \"Dezember\";} \nvar yyyy = now.getFullYear();\nmsg.payload.text = 'Heute ist ' + wotag + ' der ' + dd + '. ' + monat + ' ' + yyyy;\n//msg.siteId = 'atom1';\nmsg.payload.sessionId = sessionId;\nmsg.payload.siteId = siteId;\nreturn msg;\n\nfunction wochentag(i){\n\n var tage = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag'];\n\n var tag = (typeof(i) == 'object') ? i.getDay() : i ;\n\n return tage[tag];\n\n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 640,
"y": 240,
"wires": [
[
"d11f5476.b548b8",
"b82bc0c9.cae788"
]
]
},
{
"id": "3b203211.bde36e",
"type": "debug",
"z": "de4ca1a1.9c245",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 410,
"y": 100,
"wires": []
},
{
"id": "2c47428c.4b82e6",
"type": "function",
"z": "de4ca1a1.9c245",
"name": "Flow Variables",
"func": "flow.set('siteId',msg.payload.siteId)\nflow.set('sessionId',msg.payload.sessionId)",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 440,
"y": 400,
"wires": [
[]
]
},
{
"id": "8494e798.106348",
"type": "mqtt-broker",
"name": "mosquitto",
"broker": "192.168.XXX.XXX",
"port": "1883",
"clientid": "iobroker_node-red",
"usetls": false,
"protocolVersion": "5",
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willPayload": "",
"willMsg": {},
"sessionExpiry": ""
}
]
Can someone help me to get the last pieces together?