Home Assistant Skill
Formål
Denne skill bruges når TuxCore hjælper Thomas med Home Assistant, YAML, automations, dashboards, scripts, helpers, sensors, REST/API integrationer og fejlfinding.
Den er relevant for:
- Home Assistant OS
- Automations
- Scripts
- Dashboards / Lovelace cards
- Helpers
- Template sensors
- REST sensors
- Webhooks
- ESP32/ESP8266 integration uden MQTT
- Google Home / media_player
- Zigbee/ZHA
- Lysstyring
- Lokale systemer og API'er
Standardprincipper
- Svar på dansk som standard.
- Brug korrekt Home Assistant YAML-indryk.
- Lever komplette YAML-blokke når brugeren skriver
$ha $full. - Lever kun relevante ændringer når brugeren skriver
$ha $patch. - Undgå MQTT hvis brugeren ønsker API/webhook-baseret integration.
- Brug eksisterende entity IDs når de kendes.
- Forklar hvor YAML skal indsættes.
- Giv altid testtrin.
- Brug Home Assistant Developer Tools aktivt i testforslag.
- Undgå unødvendige custom components, medmindre brugeren specifikt ønsker det.
Kendte standarder hos Thomas
Når relevant, husk:
- Home Assistant kører som HAOS, ikke Docker.
- MQTT/Mosquitto har tidligere været brugt, men API/webhook foretrækkes i nyere ESP-projekter.
- LUX threshold på
10bruges ofte til lysautomations. - ESP-kode skal typisk være Arduino
.ino, ikke ESPHome. - Undgå Portainer.
- Brug lokale IP'er og API'er når relevant.
Typiske entity-domæner
light.*
switch.*
sensor.*
binary_sensor.*
media_player.*
input_boolean.*
input_number.*
input_select.*
input_text.*
automation.*
script.*
person.*
device_tracker.*
Automation standard
En god automation bør typisk have:
alias: Beskrivende navn
description: Kort forklaring
mode: single
trigger:
- platform: state
entity_id: binary_sensor.example
to: "on"
condition: []
action:
- service: light.turn_on
target:
entity_id: light.example
Choose standard
Ved flere scenarier bruges choose:
action:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.lux
below: 10
sequence:
- service: light.turn_on
target:
entity_id: light.example
default:
- service: light.turn_off
target:
entity_id: light.example
LUX-baseret lysstyring
Eksempel:
alias: Tænd lys ved lav lux og bevægelse
description: Tænder lys når der er bevægelse og lux er under 10.
mode: restart
trigger:
- platform: state
entity_id: binary_sensor.motion_sensor
to: "on"
condition:
- condition: numeric_state
entity_id: sensor.lux_sensor
below: 10
action:
- service: light.turn_on
target:
entity_id: light.room_light
Webhook integration
Når ESP/API skal kalde Home Assistant uden MQTT, kan webhook bruges:
alias: ESP webhook eksempel
description: Modtager webhook fra ESP eller ekstern service.
mode: queued
trigger:
- platform: webhook
webhook_id: esp_device_event
allowed_methods:
- POST
local_only: true
action:
- service: persistent_notification.create
data:
title: "ESP Event"
message: "Webhook modtaget"
REST command
Home Assistant kan kalde ESP eller lokal API:
rest_command:
esp_relay_on:
url: "http://192.168.2.50/relay/on"
method: GET
esp_relay_off:
url: "http://192.168.2.50/relay/off"
method: GET
REST sensor
Eksempel:
sensor:
- platform: rest
name: ESP Device Status
resource: "http://192.168.2.50/status"
method: GET
scan_interval: 30
value_template: "{{ value_json.uptime_ms }}"
json_attributes:
- device_id
- rssi
Template sensor
Eksempel:
template:
- sensor:
- name: "ESP WiFi Signal"
unit_of_measurement: "dBm"
state: "{{ state_attr('sensor.esp_device_status', 'rssi') }}"
Media player / Google Home
Eksempel service call:
service: media_player.volume_set
target:
entity_id: media_player.googlehome9154
data:
volume_level: 0.4
TTS eksempel afhænger af installeret TTS-service, men strukturen er typisk:
service: tts.speak
target:
entity_id: tts.google_translate_da_com
data:
media_player_entity_id: media_player.googlehome9154
message: "Dette er en test."
Dashboard / Lovelace standard
Når TuxCore laver dashboard-kort, bør svaret indeholde:
- Hvor kortet skal indsættes.
- Om det kræver custom card.
- YAML-kortet.
- Entity IDs der skal ændres.
- Testtrin.
Simpelt entities card:
type: entities
title: ESP Status
entities:
- entity: sensor.esp_device_status
- entity: sensor.esp_wifi_signal
Button card uden custom dependency:
type: button
name: Tænd relæ
icon: mdi:power
tap_action:
action: call-service
service: rest_command.esp_relay_on
Helpers
Gode helpers til dashboards/automations:
input_boolean
input_number
input_select
input_text
timer
counter
schedule
Eksempel:
input_boolean:
auto_mode:
name: Auto mode
icon: mdi:auto-mode
Scripts
Eksempel:
script:
test_google_home_message:
alias: Test Google Home besked
mode: single
sequence:
- service: media_player.volume_set
target:
entity_id: media_player.googlehome9154
data:
volume_level: 0.4
Fejlfinding
Når brugeren skriver $ha $debug, bør TuxCore svare med:
- Hvad fejlen betyder.
- Mest sandsynlige årsag.
- Hvad der skal tjekkes i Developer Tools.
- YAML-fix.
- Testtrin.
- Næste skridt.
Developer Tools test
Tjek entity state:
Developer Tools
→ States
→ søg efter entity_id
Test service:
Developer Tools
→ Services
→ vælg service
→ udfyld YAML
→ Call service
Tjek automation trace:
Settings
→ Automations & Scenes
→ vælg automation
→ Traces
Tjek logs:
Settings
→ System
→ Logs
Typiske fejl
YAML indentation fejl
Mulige årsager:
- Forkert antal spaces
- Tabs i stedet for spaces
dataogtargetplaceret forkert- Listepunkt
-mangler
Fix:
- Brug 2 spaces
- Ingen tabs
- Valider YAML i Home Assistant
Entity findes ikke
Mulige årsager:
- Forkert entity ID
- Device er renamed
- Integration er ikke loaded
- Entity er disabled
Fix:
- Tjek Developer Tools → States
- Kopiér entity ID direkte
- Tjek integrationens entities
Automation trigger ikke
Mulige årsager:
- Forkert trigger state
- Condition blokerer
- Automation er disabled
- Mode konflikter
- Entity ændrer ikke state som forventet
Fix:
- Tjek automation trace
- Test uden conditions
- Tjek faktisk state i Developer Tools
Service call fejler
Mulige årsager:
- Forkert service-navn
- Forkert data-format
- Entity understøtter ikke service
- Integration mangler
Fix:
- Test i Developer Tools → Services
- Brug UI til at generere service YAML
- Tjek logs
REST sensor virker ikke
Mulige årsager:
- API svarer ikke
- Forkert JSON
- Forkert value_template
- SSL/HTTP problem
- Home Assistant kan ikke nå IP'en
Fix:
- Test med curl fra andet device
- Tjek JSON format
- Brug
json_attributes
bn URL i browser
Sikkerhedsregler
- Eksponér ikke Home Assistant webhooks offentligt uden grund.
- Brug
local_only: truehvor muligt. - Del ikke long-lived access tokens.
- Tokens må aldrig hardcodes i frontend.
- Brug lokale IP'er/VPN hvor muligt.
- Undgå at åbne Home Assistant direkte mod internettet uden sikker adgang.
- Brug HTTPS og stærk adgangskode.
Når TuxCore laver $ha $full
Lever som udgangspunkt:
- Komplet YAML.
- Hvor YAML skal indsættes.
- Eventuelle helpers.
- Eventuelle scripts.
- Eventuelt dashboard card.
- Testtrin.
- Fejlfinding hvis det ikke virker.
- Liste over entity IDs der skal tilpasses.
Når TuxCore laver $ha $patch
Lever kun:
- Hvad der skal ændres.
- Den konkrete YAML-blok.
- Hvor den skal indsættes.
- Hvordan HA genindlæses.
- Testtrin.
Når TuxCore laver Home Assistant + ESP
Brug som standard API/webhook/REST, ikke MQTT, medmindre brugeren specifikt beder om MQTT.
Typisk flow:
ESP32/ESP8266
→ HTTP endpoint / webhook
→ Home Assistant automation
→ service call / dashboard / notification
Acceptkriterier
En Home Assistant løsning er godkendt når:
- YAML er korrekt indrykket.
- Entity IDs er tydelige.
- Der står hvor koden skal placeres.
- Den kan testes i Developer Tools.
- Automations har trace/testforslag.
- Ingen secrets deles i klartekst.
- MQTT undgås hvis API/webhook er kravet.
- Svaret er copy/paste-klar.
Tags
home-assistant, haos, yaml, automation, dashboard, webhook, rest, esp, api, tuxcore