SDK
Die CustomSDK von Finn Wehn wurde iteriert. Die ursprüngliche SDK ist hier dokumentiert. Die Änderungen werden hier beschrieben.
Konfigurationsobjekt
let configObject = {
mqtt: 'localhost',
intentHandler: () => {},
variables: {},
zigbeeTopic: "",
zigbeeUpdater: () => {},
zigbeeDevices: [],
zigbeeGroups: [],
postSlots: () => {},
customSlots: []
}
Die Eigenschaften zigbeeDevices
und zigbeeGroups
enthalten alle Zigbee Devices und alle in Zigbee2MQTT eingerichteten Gruppen.
Die Eigenschaft postSlots
erhält eine Funktion zum Registrieren von neuen Sloteinträgen an Rhasspy. Dabei muss der Slotname und die neuen Einträge übergeben werden. Außerdem kann optional festgelegt werden, ob die existierenden Einträge mit den neuen Überschrieben werden sollen.
Die Eigenschaft customSlots
ist eine Liste mit allen dynamischen Slots. Diese ist nach Skills sortiert. Ausschließlich die Detailseite nutzt diese Eigenschaft.
Sessiondata
let sessionData = {
siteId: "default",
sessionId: "",
skill: "",
answer: "",
fail: ""
}
Die sessionData
erhält zusätzlich noch eine Eigenschaft fail
. Dort werden die Fehlermeldungen fail
aus den Manifest Dateien der Skills zur Laufzeit festgehalten.
Antwort und Fehler generieren
function generateFailResponse(vars = [""], index=0, separator = "#"){
let parts = sessionData.fail[index].split(separator);
let answer = parts[0];
for (let i = 1; i < parts.length; i++){
if(!vars[i-1]){
answer = answer + parts[i]
return answer
}
answer = answer + vars[i-1] + parts[i];
}
return answer;
}
Die Funktionen zur Generation von Antwort und Fehlermeldung sind bis auf die verwendete Eigenschaft der sessionData
identisch. Sie erhalten eine Liste vars
an einzusetzenden Wörtern und fügen sie in den durch den index
definierten Satz ein. Dieser Satz wird dann zurückgegeben.
Aufzählung generieren
function generateEnum(list, join = "und"){
let enumeration=""
if(list.length>1){
for (let index = 0; index < list.length; index++){
if(!list[index+1]){
enumeration+=` ${join} ${list[index]}`
return enumeration
}
else
enumeration+=` ${list[index]}`
}
}
else{
enumeration=list[0]
return enumeration
}
}
Diese Funktion erhält eine Liste list
an Wörtern und generiert daraus eine, mit den Verbindungswort join
verbundene, Aufzählung. Diese wird zurückgegeben.
- Previous
- Next