ha-configuration

安装量: 51
排名: #14433

安装

npx skills add https://github.com/laurigates/claude-plugins --skill ha-configuration

Home Assistant Configuration When to Use This Skill Use this skill when... Use ha-automations instead when... Editing configuration.yaml Creating automation rules Setting up integrations Writing automation triggers/actions Managing secrets.yaml Debugging automation logic Organizing with packages Working with automation blueprints Troubleshooting config errors Setting up device triggers Core Configuration Files File Purpose configuration.yaml Main configuration entry point secrets.yaml Sensitive values (passwords, API keys, tokens) automations.yaml Automation rules (usually UI-managed) scripts.yaml Reusable script sequences scenes.yaml Scene definitions customize.yaml Entity customizations packages/*.yaml Modular configuration packages Configuration Structure Basic configuration.yaml homeassistant : name : Home unit_system : metric time_zone : Europe/Helsinki currency : EUR country : FI

External files

customize : !include customize.yaml packages : !include_dir_named packages/

Core integrations

default_config :

Text-to-speech

tts : - platform : google_translate automation : !include automations.yaml script : !include scripts.yaml scene : !include scenes.yaml Secrets Management secrets.yaml:

API keys

openweathermap_api_key : "abc123def456" spotify_client_id : "your_client_id" spotify_client_secret : "your_client_secret"

Database

recorder_db_url : "postgresql://user:pass@localhost/hass"

MQTT

mqtt_username : "homeassistant" mqtt_password : "secure_password"

Network

latitude : 60.1699 longitude : 24.9384 Reference in configuration.yaml: weather : - platform : openweathermap api_key : !secret openweathermap_api_key recorder : db_url : !secret recorder_db_url Include Directives Directive Description Example !include Include single file !include automations.yaml !include_dir_list Include files as list items !include_dir_list sensors/ !include_dir_named Include files as named mappings !include_dir_named packages/ !include_dir_merge_list Merge files into single list !include_dir_merge_list automations/ !include_dir_merge_named Merge files into single mapping !include_dir_merge_named integrations/ !secret Reference from secrets.yaml !secret api_key !env_var Environment variable !env_var DB_PASSWORD Package Organization Packages allow modular configuration by domain: packages/climate.yaml: climate_package : sensor : - platform : template sensors : average_indoor_temp : friendly_name : "Average Indoor Temperature" unit_of_measurement : "°C" value_template :

- { { (states('sensor.living_room_temp') | float + states('sensor.bedroom_temp') | float) / 2 | round(1) } } automation : - alias : "Climate - AC Auto Off" trigger : - platform : numeric_state entity_id : sensor.average_indoor_temp below : 22 action : - service : climate.turn_off target : entity_id : climate.living_room_ac script : climate_cool_down : alias : "Cool Down House" sequence : - service : climate.set_temperature target : entity_id : climate.living_room_ac data : temperature : 20 hvac_mode : cool packages/presence.yaml: presence_package : input_boolean : guest_mode : name : "Guest Mode" icon : mdi : account - multiple binary_sensor : - platform : template sensors : anyone_home : friendly_name : "Anyone Home" device_class : presence value_template :

- { { is_state('person.user1' , 'home') or is_state('person.user2' , 'home') or is_state('input_boolean.guest_mode' , 'on') } } Common Integration Patterns MQTT Configuration mqtt : broker : !secret mqtt_broker port : 1883 username : !secret mqtt_username password : !secret mqtt_password discovery : true discovery_prefix : homeassistant sensor : - name : "Outdoor Temperature" state_topic : "sensors/outdoor/temperature" unit_of_measurement : "°C" device_class : temperature value_template : "{{ value_json.temperature }}" REST Sensors sensor : - platform : rest name : "GitHub Stars" resource : https : //api.github.com/repos/home - assistant/core value_template : "{{ value_json.stargazers_count }}" scan_interval : 3600 headers : Authorization : !secret github_token Template Sensors template : - sensor : - name : "Sun Elevation" unit_of_measurement : "°" state : "{{ state_attr('sun.sun', 'elevation') | round(1) }}" - name : "Daylight Hours" unit_of_measurement : "hours" state :

- { % set sunrise = as_timestamp(state_attr('sun.sun' , 'next_rising')) % } { % set sunset = as_timestamp(state_attr('sun.sun' , 'next_setting')) % } { { ((sunset - sunrise) / 3600) | round(1) } } - binary_sensor : - name : "Workday" state : "{{ now().weekday() < 5 }}" Input Helpers input_boolean : vacation_mode : name : "Vacation Mode" icon : mdi : airplane input_number : target_temperature : name : "Target Temperature" min : 16 max : 28 step : 0.5 unit_of_measurement : "°C" icon : mdi : thermometer input_select : house_mode : name : "House Mode" options : - Home - Away - Sleep - Guest icon : mdi : home input_text : notification_message : name : "Custom Notification" max : 255 input_datetime : alarm_time : name : "Alarm Time" has_date : false has_time : true Configuration Validation Check Configuration

Docker/Container

docker exec homeassistant hass --script check_config

Home Assistant OS

ha core check

Supervised

hassio homeassistant check

Python venv

hass --script check_config -c /path/to/config Common Validation Errors Error Cause Fix found undefined alias Missing !secret value Add to secrets.yaml could not determine a constructor Invalid YAML syntax Check indentation duplicate key Same key defined twice Remove duplicate Platform not found Missing integration Install via UI/HACS Recorder Configuration recorder : db_url : !secret recorder_db_url purge_keep_days : 10 commit_interval : 1 exclude : domains : - automation - updater entity_globs : - sensor.weather_* entities : - sun.sun - sensor.date include : domains : - sensor - binary_sensor - switch Logger Configuration logger : default : warning logs : homeassistant.core : info homeassistant.components.mqtt : debug custom_components.my_integration : debug

Reduce noise

homeassistant.components.websocket_api : error Lovelace Dashboard (YAML Mode)

configuration.yaml

lovelace : mode : yaml resources : - url : /hacsfiles/button - card/button - card.js type : module dashboards : lovelace-home : mode : yaml filename : dashboards/home.yaml title : Home icon : mdi : home show_in_sidebar : true Quick Reference YAML Tips Pattern Example Multi-line string value: >- or value: |- List item - item Inline list [item1, item2] Comment

comment

Anchor &anchor_name Reference anchor_name Merge <<: anchor_name Template Syntax Function Example State value states('sensor.temp') State attribute state_attr('sun.sun', 'elevation') Convert to float states('sensor.temp') | float Round value | round(1) Default value states('sensor.x') | default('unknown') Timestamp as_timestamp(now()) Time delta now() - timedelta(hours=1) Agentic Optimizations Context Command Validate config docker exec homeassistant hass --script check_config 2>&1 | head -50 Find entity usage grep -r "entity_id:" config/ --include=".yaml" Find secret refs grep -r "!secret" config/ --include=".yaml" List packages ls -la config/packages/ Check YAML syntax python3 -c "import yaml; yaml.safe_load(open('file.yaml'))"

返回排行榜