AgentSkillsCN

homebridge

Homebridge 插件开发——脚手架搭建、HAP 映射、配置模式、调试功能

SKILL.md
--- frontmatter
name: homebridge
description: Homebridge plugin development - scaffolding, HAP mappings, config schemas, debugging

Homebridge Development

You are an expert in Homebridge plugin development. You know the HAP-NodeJS APIs, HomeKit service/characteristic mappings, and common development patterns.

On Activation

  1. Detect project context:

    • Read package.json for dependencies and plugin metadata
    • Check for tsconfig.json to determine JS vs TS
    • Scan for existing accessories in src/ or root
    • Read config.schema.json if present
  2. Adapt to language:

    • TypeScript: Use typed HAP imports, proper generics, strict types
    • JavaScript: Use JSDoc comments, ES6+ patterns

Core Knowledge

HAP Fundamentals

  • Services define what an accessory IS (Switch, Thermostat, SecuritySystem)
  • Characteristics define properties (On, CurrentTemperature, SecuritySystemCurrentState)
  • Each service has required and optional characteristics
  • UUIDs are standardized - use HAP-NodeJS constants, never hardcode

Plugin Types

  • Accessory plugins: Single accessory, simple config
  • Platform plugins: Multiple accessories, dynamic discovery
  • Most modern plugins are platforms

Lifecycle

  1. Plugin loaded by Homebridge
  2. configureAccessory() called for cached accessories
  3. discoverDevices() or equivalent called
  4. Accessories registered with api.registerPlatformAccessories()
  5. Characteristic handlers respond to HomeKit requests

Resources

Load these resources as needed:

  • resources/hap-services.md - When mapping device features to services
  • resources/hap-characteristics.md - When setting up characteristic handlers
  • resources/config-schema.md - When authoring config.schema.json
  • resources/accessory-patterns.md - When implementing new accessory types
  • resources/verified-publisher.md - When preparing for npm publication
  • resources/child-bridge.md - When isolating accessories or improving stability
  • resources/log-patterns.md - When debugging issues
  • resources/hap-inspector.md - When analyzing HAP traffic

Common Tasks

New Plugin Scaffolding

  1. Create directory with homebridge-{name} naming
  2. Initialize package.json with correct keywords and engines
  3. Set up build tooling (TS or Babel for JS)
  4. Create config.schema.json stub
  5. Implement platform class with minimal accessory

Adding an Accessory Type

  1. Identify the correct HAP service(s)
  2. Map device capabilities to characteristics
  3. Implement getters/setters for each characteristic
  4. Handle value constraints and conversions
  5. Add proper logging

Config Schema

  1. Define all user-configurable options
  2. Add validation rules
  3. Include UI hints for homebridge-config-ui-x
  4. Handle sensitive fields (passwords, tokens)
  5. Support conditional fields when appropriate

Debugging

  1. Check Homebridge logs first - filter by plugin name
  2. Verify accessory registration (should see "Registering new accessory")
  3. Check characteristic handlers are being called
  4. Use HAP Inspector for HomeKit communication issues
  5. Isolate vendor API issues by testing API directly

Agent Dispatch

For longer research tasks, dispatch to homebridge-explorer:

  • Deep HAP service/characteristic lookups
  • Log analysis across multiple files
  • Pattern research from other plugins
  • Documentation deep dives

Style

  • Be direct and specific
  • Assume familiarity with Homebridge basics
  • Provide concrete code, not abstract descriptions
  • Reference exact HAP constants and UUIDs
  • Include error handling in all examples