Skip to main content
Glama
kaeljune

Fibaro HC3 MCP Server

by kaeljune

fibaro_set_device_value

Set advanced device properties like temperature setpoints, modes, or custom parameters in Fibaro Home Center 3 smart home systems. Use for specialized property adjustments beyond basic brightness or color controls.

Instructions

Set a specific property value for a device. Use this ONLY for advanced properties like temperature setpoints, modes, or custom device properties. Do NOT use for brightness (use fibaro_set_brightness) or colors (use fibaro_set_color).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesDevice ID
propertyYesProperty name to set (e.g., "targetTemperature", "mode", "state")
valueYesValue to set

Implementation Reference

  • MCP tool handler for 'fibaro_set_device_value': extracts id, property, value from args, calls fibaroClient.setDeviceValue, and returns success message.
    case 'fibaro_set_device_value': {
      if (!this.fibaroClient) {
        throw new Error('Not connected to Fibaro HC3. Please check your configuration and restart the MCP server.');
      }
      const deviceId = args?.id as number;
      const property = args?.property as string;
      const value = args?.value;
      await this.fibaroClient.setDeviceValue(deviceId, property, value);
      return {
        content: [
          {
            type: 'text',
            text: `Successfully set device ${deviceId} property '${property}' to '${value}'`,
          },
        ],
      };
    }
  • src/index.ts:192-213 (registration)
    Registration of the 'fibaro_set_device_value' tool in the MCP tools list, including input schema.
    {
      name: 'fibaro_set_device_value',
      description: 'Set a specific property value for a device. Use this ONLY for advanced properties like temperature setpoints, modes, or custom device properties. Do NOT use for brightness (use fibaro_set_brightness) or colors (use fibaro_set_color).',
      inputSchema: {
        type: 'object',
        properties: {
          id: {
            type: 'number',
            description: 'Device ID',
          },
          property: {
            type: 'string',
            description: 'Property name to set (e.g., "targetTemperature", "mode", "state")',
          },
          value: {
            type: ['string', 'number', 'boolean'],
            description: 'Value to set',
          },
        },
        required: ['id', 'property', 'value'],
      },
    },
  • Input schema definition for the fibaro_set_device_value tool.
    {
      name: 'fibaro_set_device_value',
      description: 'Set a specific property value for a device. Use this ONLY for advanced properties like temperature setpoints, modes, or custom device properties. Do NOT use for brightness (use fibaro_set_brightness) or colors (use fibaro_set_color).',
      inputSchema: {
        type: 'object',
        properties: {
          id: {
            type: 'number',
            description: 'Device ID',
          },
          property: {
            type: 'string',
            description: 'Property name to set (e.g., "targetTemperature", "mode", "state")',
          },
          value: {
            type: ['string', 'number', 'boolean'],
            description: 'Value to set',
          },
        },
        required: ['id', 'property', 'value'],
      },
    },
  • FibaroClient helper method that performs the actual API POST to /api/devices/{id}/action/setProperty with args [property, value]. Called by the MCP handler.
    async setDeviceValue(id: number, property: string, value: any): Promise<void> {
      try {
        await this.client.post(`/api/devices/${id}/action/setProperty`, {
          args: [property, value]
        });
      } catch (error) {
        throw new Error(`Failed to set device ${id} property ${property} to ${value}: ${error}`);
      }
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kaeljune/fibaro-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server