MCPInstall

ha-entities

Home Assistant entity and domain management. Use when working with entity IDs, device classes, template entities, groups, or domain-specific attribute customizations.

Installs
71
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/laurigates/claude-plugins --skill ha-entities
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads ha-entities automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Home Assistant Entities

When to Use This Skill

Use this skill when...Use ha-automations instead when...
Understanding entity domainsCreating automation rules
Customizing entitiesWorking with triggers/actions
Creating template sensorsWriting automation conditions
Setting up groupsWorking with scripts/scenes
Working with device classesHandling events

Entity ID Structure

domain.object_id

Examples:

  • light.living_room_ceiling
  • sensor.outdoor_temperature
  • binary_sensor.front_door_contact
  • switch.garden_irrigation

Common Domains

DomainDescriptionExample
lightLighting controllight.kitchen
switchOn/off switchesswitch.outlet
sensorNumeric sensorssensor.temperature
binary_sensorOn/off sensorsbinary_sensor.motion
climateHVAC controlclimate.thermostat
coverBlinds, garage doorscover.garage
lockDoor lockslock.front_door
media_playerMedia devicesmedia_player.tv
cameraCamera feedscamera.front_yard
vacuumRobot vacuumsvacuum.roomba
fanFan controlfan.bedroom
alarm_control_panelAlarm systemsalarm_control_panel.home
personPeople trackingperson.john
device_trackerDevice locationdevice_tracker.phone
weatherWeather infoweather.home
input_booleanVirtual toggleinput_boolean.guest_mode
input_numberVirtual numberinput_number.target_temp
input_selectVirtual dropdowninput_select.house_mode
input_textVirtual textinput_text.message
input_datetimeVirtual date/timeinput_datetime.alarm
input_buttonVirtual buttoninput_button.reset
automationAutomationsautomation.motion_light
scriptScriptsscript.morning_routine
sceneScenesscene.movie_night
groupEntity groupsgroup.all_lights
timerCountdown timerstimer.laundry
counterCounterscounter.guests
zoneGeographic zoneszone.home
sunSun positionsun.sun

For complete device class tables (binary sensor and sensor), see REFERENCE.md.

Entity Customization

customize.yaml

# Single entity
light.living_room:
  friendly_name: "Living Room Light"
  icon: mdi:ceiling-light

# Binary sensor
binary_sensor.front_door:
  friendly_name: "Front Door"
  device_class: door

# Sensor
sensor.outdoor_temperature:
  friendly_name: "Outdoor Temperature"
  device_class: temperature
  unit_of_measurement: "°C"

Glob Customization

customize_glob:
  "light.*_ceiling":
    icon: mdi:ceiling-light

  "sensor.*_temperature":
    device_class: temperature
    unit_of_measurement: "°C"

  "binary_sensor.*_motion":
    device_class: motion

Template Sensors

template:
  - sensor:
      # Simple state
      - name: "Average Temperature"
        unit_of_measurement: "°C"
        device_class: temperature
        state: >-
          {{ ((states('sensor.living_room_temp') | float +
               states('sensor.bedroom_temp') | float +
               states('sensor.kitchen_temp') | float) / 3) | round(1) }}

      # With attributes
      - name: "Power Usage"
        unit_of_measurement: "W"
        device_class: power
        state: "{{ states('sensor.energy_meter_power') }}"
        attributes:
          cost_per_hour: >-
            {{ (states('sensor.energy_meter_power') | float * 0.15 / 1000) | round(2) }}

      # Availability
      - name: "Solar Power"
        unit_of_measurement: "W"
        device_class: power
        state: "{{ states('sensor.inverter_power') }}"
        availability: "{{ states('sensor.inverter_power') != 'unavailable' }}"

For template binary sensors, switches, buttons, numbers, groups, utility meters, counters, and timers, see REFERENCE.md.

State Attributes

Common Attributes

DomainCommon Attributes
lightbrightness, color_temp, rgb_color, hs_color, effect
climatetemperature, current_temperature, hvac_action, preset_mode
media_playervolume_level, media_title, media_artist, source
covercurrent_position, current_tilt_position
weathertemperature, humidity, pressure, wind_speed, forecast
personsource, latitude, longitude, gps_accuracy
sunelevation, azimuth, next_rising, next_setting

Accessing Attributes

# In templates
{{ state_attr('light.living_room', 'brightness') }}
{{ state_attr('climate.thermostat', 'current_temperature') }}
{{ state_attr('sun.sun', 'elevation') }}

# In conditions
condition:
  - condition: numeric_state
    entity_id: light.living_room
    attribute: brightness
    above: 100

Quick Reference

State Functions

FunctionDescriptionExample
states('entity')Get statestates('sensor.temp')
state_attr('entity', 'attr')Get attributestate_attr('light.x', 'brightness')
is_state('entity', 'value')Check stateis_state('light.x', 'on')
is_state_attr('entity', 'attr', 'val')Check attributeis_state_attr('climate.x', 'hvac_action', 'heating')
states.domainAll entities in domainstates.light
expand('group.x')Expand group membersexpand('group.all_lights')

Agentic Optimizations

ContextCommand
Find entity usagegrep -r "entity_id:" config/ --include="*.yaml"
List customizationsgrep -rA2 "^[a-z_]*\\..*:" config/customize.yaml
Find template sensorsgrep -rB2 "platform: template" config/ --include="*.yaml"
Find groupsgrep -rA5 "^group:" config/ --include="*.yaml"
List domains usedgrep -roh "[a-z_]*\\." config/ --include="*.yaml" | sort -u

FAQ

What does the ha-entities skill do?

Home Assistant entity and domain management. Use when working with entity IDs, device classes, template entities, groups, or domain-specific attribute customizations.

How do I install ha-entities?

Run npx skills add https://github.com/laurigates/claude-plugins --skill ha-entities in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/ha-entities/ (personal) or .claude/skills/ha-entities/ (project).

Which AI agents can use ha-entities?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is ha-entities safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains ha-entities?

It is published by laurigates in laurigates/claude-plugins. It has 71 recorded installs.

More from laurigates/claude-plugins

View all →

python-code-quality

laurigates/claude-plugins

Python code quality with ruff and ty. Use when the user mentions ruff, ty, linting, formatting, type checking, or Python code style.

1K installs

ruff-linting

laurigates/claude-plugins

Python linting with ruff. Fast linting, rule selection, auto-fixing, and config. Use when checking Python code quality, enforcing standards, or finding bugs.

466 installs

python-testing

laurigates/claude-plugins

Python testing with pytest, coverage, fixtures, and mocking. Use when the user mentions pytest, unit tests, coverage, fixtures, mocking, or writing Python tests.

Testing & QA428 installs

pytest-advanced

laurigates/claude-plugins

Advanced pytest: fixtures, markers, parametrization, parallel execution. Use when implementing test infrastructure, writing fixtures, or running with coverage.

Testing & QA352 installs

uv-workspaces

laurigates/claude-plugins

Manage multi-package Python projects with uv workspaces. Use when the user mentions uv workspaces, Python monorepo, shared lockfiles, or member dependencies.

321 installs

basedpyright-type-checking

laurigates/claude-plugins

Open the skill to read its SKILL.md instructions.

320 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs