TuxCore Skillset

Home Assistant Skill

skill home-assistant Guld

skills/home-assistant/SKILL.md

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:

Standardprincipper

Kendte standarder hos Thomas

Når relevant, husk:

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:

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:

  1. Hvad fejlen betyder.
  2. Mest sandsynlige årsag.
  3. Hvad der skal tjekkes i Developer Tools.
  4. YAML-fix.
  5. Testtrin.
  6. 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:

Fix:

Entity findes ikke

Mulige årsager:

Fix:

Automation trigger ikke

Mulige årsager:

Fix:

Service call fejler

Mulige årsager:

Fix:

REST sensor virker ikke

Mulige årsager:

Fix:

Sikkerhedsregler

Når TuxCore laver $ha $full

Lever som udgangspunkt:

  1. Komplet YAML.
  2. Hvor YAML skal indsættes.
  3. Eventuelle helpers.
  4. Eventuelle scripts.
  5. Eventuelt dashboard card.
  6. Testtrin.
  7. Fejlfinding hvis det ikke virker.
  8. Liste over entity IDs der skal tilpasses.

Når TuxCore laver $ha $patch

Lever kun:

  1. Hvad der skal ændres.
  2. Den konkrete YAML-blok.
  3. Hvor den skal indsættes.
  4. Hvordan HA genindlæses.
  5. 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:

Tags

home-assistant, haos, yaml, automation, dashboard, webhook, rest, esp, api, tuxcore
home-assistant yaml automation webhook rest