Added basic alarm control

This commit is contained in:
Tevon Strand-Brown
2024-12-12 16:45:34 -08:00
parent e915134cde
commit 3a11274af1

View File

@@ -136,6 +136,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
return formatToolCall(controlClimate(request.params.arguments as { entity_id: TRawEntityIds, temperature: number })); return formatToolCall(controlClimate(request.params.arguments as { entity_id: TRawEntityIds, temperature: number }));
case "control_cover": case "control_cover":
return formatToolCall(controlCover(request.params.arguments as { entity_id: TRawEntityIds, state: string, position?: number })); return formatToolCall(controlCover(request.params.arguments as { entity_id: TRawEntityIds, state: string, position?: number }));
case "control_switch":
return formatToolCall(controlSwitch(request.params.arguments as { entity_id: TRawEntityIds, state: string }));
case "control_alarm_control_panel":
return formatToolCall(controlAlarmControlPanel(request.params.arguments as { entity_id: TRawEntityIds, state: string }));
} }
return formatToolCall({ return formatToolCall({
@@ -155,6 +159,40 @@ runServer().catch((error) => {
process.exit(1); process.exit(1);
}); });
const controlSwitch = async (params: { entity_id: TRawEntityIds, state: string }) => {
if (params.state === "on") {
return hass.hass.call.switch.turn_on({
entity_id: params.entity_id,
})
}
return hass.hass.call.switch.turn_off({
entity_id: params.entity_id,
})
}
const controlAlarmControlPanel = async (params: { entity_id: TRawEntityIds, state: string }) => {
if (params.state === "arm_away") {
return hass.hass.call.alarm_control_panel.alarm_arm_away({
entity_id: params.entity_id,
})
}
if (params.state === "disarm") {
return hass.hass.call.alarm_control_panel.alarm_disarm({
entity_id: params.entity_id,
})
}
if (params.state === "arm_home") {
return hass.hass.call.alarm_control_panel.alarm_arm_home({
entity_id: params.entity_id,
})
}
if (params.state === "arm_night") {
return hass.hass.call.alarm_control_panel.alarm_arm_night({
entity_id: params.entity_id,
})
}
}
const controlLight = async (params: { entity_id: TRawEntityIds, state: string, brightness?: number }) => { const controlLight = async (params: { entity_id: TRawEntityIds, state: string, brightness?: number }) => {
if (params.state === "on") { if (params.state === "on") {
return hass.hass.call.light.turn_on({ return hass.hass.call.light.turn_on({