import { loadVoiceWakeConfig, setVoiceWakeTriggers } from "../../infra/voicewake.js" ;
import { ErrorCodes, errorShape } from "../protocol/index.js" ;
import { normalizeVoiceWakeTriggers } from "../server-utils.js" ;
import { formatForLog } from "../ws-log.js" ;
import type { GatewayRequestHandlers } from "./types.js" ;
export const voicewakeHandlers: GatewayRequestHandlers = {
"voicewake.get" : async ({ respond }) => {
try {
const cfg = await loadVoiceWakeConfig();
respond(true , { triggers: cfg.triggers });
} catch (err) {
respond(false , undefined, errorShape(ErrorCodes.UNAVAILABLE, formatForLog(err)));
}
},
"voicewake.set" : async ({ params, respond, context }) => {
if (!Array.isArray(params.triggers)) {
respond(
false ,
undefined,
errorShape(ErrorCodes.INVALID_REQUEST, "voicewake.set requires triggers: string[]" ),
);
return ;
}
try {
const triggers = normalizeVoiceWakeTriggers(params.triggers);
const cfg = await setVoiceWakeTriggers(triggers);
context.broadcastVoiceWakeChanged(cfg.triggers);
respond(true , { triggers: cfg.triggers });
} catch (err) {
respond(false , undefined, errorShape(ErrorCodes.UNAVAILABLE, formatForLog(err)));
}
},
};
Messung V0.5 in Prozent C=98 H=97 G=97
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland