ha-entities

SKILL.md

Home Assistant Entities

When to Use This Skill

Use this skill when... Use ha-automations instead when...
Understanding entity domains Creating automation rules
Customizing entities Working with triggers/actions
Creating template sensors Writing automation conditions
Setting up groups Working with scripts/scenes
Working with device classes Handling 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

Domain Description Example
light Lighting control light.kitchen
switch On/off switches switch.outlet
sensor Numeric sensors sensor.temperature
binary_sensor On/off sensors binary_sensor.motion
climate HVAC control climate.thermostat
cover Blinds, garage doors cover.garage
lock Door locks lock.front_door
media_player Media devices media_player.tv
camera Camera feeds camera.front_yard
vacuum Robot vacuums vacuum.roomba
fan Fan control fan.bedroom
alarm_control_panel Alarm systems alarm_control_panel.home
person People tracking person.john
device_tracker Device location device_tracker.phone
weather Weather info weather.home
input_boolean Virtual toggle input_boolean.guest_mode
input_number Virtual number input_number.target_temp
input_select Virtual dropdown input_select.house_mode
input_text Virtual text input_text.message
input_datetime Virtual date/time input_datetime.alarm
input_button Virtual button input_button.reset
automation Automations automation.motion_light
script Scripts script.morning_routine
scene Scenes scene.movie_night
group Entity groups group.all_lights
timer Countdown timers timer.laundry
counter Counters counter.guests
zone Geographic zones zone.home
sun Sun position sun.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

Domain Common Attributes
light brightness, color_temp, rgb_color, hs_color, effect
climate temperature, current_temperature, hvac_action, preset_mode
media_player volume_level, media_title, media_artist, source
cover current_position, current_tilt_position
weather temperature, humidity, pressure, wind_speed, forecast
person source, latitude, longitude, gps_accuracy
sun elevation, 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

Function Description Example
states('entity') Get state states('sensor.temp')
state_attr('entity', 'attr') Get attribute state_attr('light.x', 'brightness')
is_state('entity', 'value') Check state is_state('light.x', 'on')
is_state_attr('entity', 'attr', 'val') Check attribute is_state_attr('climate.x', 'hvac_action', 'heating')
states.domain All entities in domain states.light
expand('group.x') Expand group members expand('group.all_lights')

Agentic Optimizations

Context Command
Find entity usage grep -r "entity_id:" config/ --include="*.yaml"
List customizations grep -rA2 "^[a-z_]*\\..*:" config/customize.yaml
Find template sensors grep -rB2 "platform: template" config/ --include="*.yaml"
Find groups grep -rA5 "^group:" config/ --include="*.yaml"
List domains used grep -roh "[a-z_]*\\." config/ --include="*.yaml" | sort -u
Weekly Installs
47
GitHub Stars
13
First Seen
Feb 9, 2026
Installed on
opencode47
gemini-cli47
github-copilot47
codex47
amp47
kimi-cli47