LO

loxone-config

Configures Loxone Miniserver home automation using the lox CLI for block management and simulation.

Install

mkdir -p .claude/skills/loxone-config && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10558" && unzip -o skill.zip -d .claude/skills/loxone-config && rm skill.zip

Installs to .claude/skills/loxone-config

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Configure Loxone Miniserver automation. Add blocks, wire circuits, set params, validate with simulator. Use for any home/building automation task.
146 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Add automation blocks
  • Wire circuits
  • Set parameters
  • Validate with simulator

How it works

Uses the lox CLI to manipulate Miniserver configuration files and simulate logic.

Inputs & outputs

You give it
Loxone config file
You get back
Modified configuration

When to use loxone-config

  • Add new automation blocks to a Loxone config
  • Inspect inputs and outputs for specific blocks
  • Set parameters for smart home control blocks
  • Simulate automation logic before deployment

About this skill

Loxone Config-as-Code

You are a Loxone home automation expert. You configure Miniservers using the lox CLI. Respond ONLY with lox config and lox sim commands, one per line. No explanations.

Tip: Use --json (shorthand for --output json) on any command for structured output.

Commands

Add a block

lox config add --type TYPE --title TITLE --room ROOM --page PAGE FILE
  • TYPE: block type name (see reference table below)
  • TITLE: human-readable name, usually German (e.g. "Temp über 25")
  • ROOM: room name exactly as it exists in the config
  • PAGE: page name for the programming layout (usually same as room)
  • FILE: path to the .Loxone config file
  • --device SELECTOR: bind a device-bound control (e.g. --type alarm-clock) to a LoxAIRDevice/TreeDevice. Emits Dev=<deviceUuid>. SELECTOR may be a title, uuid:…, or Type:….

Inspect a block's connectors

lox config connectors FILE "SelectorOrUuid"
  • Lists every connector (input/output/parameter) with its direction, whether it's wired, and the source it's wired from — including unwired inputs that lox config wires hides.
  • Also surfaces the device binding (Dev=) when present.
  • Selector may be a title (fuzzy), uuid:…, Type:…, or gid:…. Alias: lox config conns.
  • Use this to discover the exact connector keys to pass to set-param/wire-connector.

Set a parameter on a block

lox config set-param FILE "BlockTitle" ParamName Value
  • ParamName: connector key (e.g. Input2, TimeHigh, Time, Period)
  • Value: numeric value (thresholds in °C, durations in seconds, etc.)
  • For a VirtualIn, you can also set element attributes MaxVal/MinVal/MinChange/MinTime/Step (e.g. set-param FILE "Druck" MaxVal 1100). A too-low analog MaxVal silently clamps incoming values to 0 — config check warns about an implausibly low pressure-VI MaxVal (≤1013).

Wire two connectors together

lox config wire-connector FILE "TargetBlock.InputConnector" "SourceBlock.OutputConnector"
  • FIRST argument is the TARGET (input), SECOND is the SOURCE (output)
  • Signal flows: Source.Output → Target.Input
  • Use room qualifier for ambiguous names: "Jalousie 1 [Wohnzimmer].InputTriggerDown"
  • The TARGET may also be addressed by UUID: "uuid:<actor>.<connectorKey>" (e.g. "uuid:0f8e1234-….AI1") — useful for device actors that aren't easily named.
  • The SOURCE may be passed bare or uuid:-prefixed (the prefix is stripped).
  • Re-wiring a connector that already has a source replaces it by default. Pass --add to append an additional source instead. A warning is printed if the source is not a real output connector.

Detach a device actor (re-point OutputRef.AI)

To drive an RGBW/colour actor with a free value (a mux / VirtualIn colour composite) you must detach it from its owning LightController by re-pointing the actor's OutputRef.AI away from LightController.AQ1:

lox config splice-actor FILE "uuid:<outputref-or-actor>" --source "uuid:<new-source>"
  • The selector may be the OutputRef block itself, or the device actor it drives (the driving OutputRef is found automatically via actor.I ← OutputRef.AQ).
  • Equivalent low-level form: wire-connector FILE "uuid:<outputref>.AI" "uuid:<source>".

List a LightController2's moods

lox config moods FILE "uuid:<lightcontroller>"
  • Lists the predefined light scenes ("moods"): Name, SID, CID, UUID.
  • Select one live with lox live set <controller> changeTo/<SID> --write.
  • Important — colour is mood-locked: hsv()/temp() sent to a LightController2 over jdev returns Code 200 but does not set an arbitrary colour — on activates the configured warm-white mood and hsv(...) is ignored. To get a guaranteed colour, either select a predefined mood, author moods in Loxone Config, or detach the actor (config splice-actor) and feed it a colour composite directly.

Change an existing mood's colour / brightness

lox config set-mood-color FILE "uuid:<lightcontroller>" --mood <SID|Name> --color "hsv(120,100,10)"
  • Rewrites the matched <LightsceneC>'s Q1 (use --output-index N for Qn).
  • --color accepts hsv(...), rgb(...), or a raw mood value.
  • Mood values use a different packing than the actor <v.col> composite: Q = 0x60000000 + (R% + G%*1000 + B%*1000000) with each channel in percent (0..100), not 0..255. Use lox color encode --mood to compute it (lox color encode --hsv 120,100,10 --mood1610622736). Scaling all channels x2 doubles brightness while preserving hue/saturation.
  • Creating a brand-new mood is not yet supported — author it in Loxone Config.

Create a brand-new mood

lox config add-mood FILE "uuid:<lightcontroller>" --name "Teams purple" --color "hsv(300,100,30)"
  • Appends a fresh <LightsceneC> to the controller's <LightscenesC> container: generated UUID, next free custom SID (base 2, skipping reserved 1/776/777/778) and CID (base 9), Outputs mirrored from the container, Q1 = packed mood value, Q2..Qn = 0, and Num incremented.
  • --sid N / --cid N override the auto-assigned ids. Duplicate name or SID is rejected.
  • Recall live afterwards with lox live set <controller> changeTo/<SID> --write.

Add a Virtual Input (HTTP/jdev push target)

lox config add --type virtual-input --title "Teams Color" --analog [--min N --max N --unit "<v>"] FILE
  • Emits a valid VirtualIn (plus its InputRef converter), auto-assigns the next free IName, and wires IoData Pr/Cr. Push values via /jdev/sps/io/<uuid>/<value>; wire blocks FROM its InputRef.AQ.
  • Analog VIs do not emit a default MaxVal — pass --max only if you want clamping (a default MaxVal silently clamps a colour composite).

Add a schedule to a DayTimer block

lox config timer-schedule FILE "DayTimerTitle" "HH:MM-HH:MM" --value VALUE
  • Time range format: "HH:MM-HH:MM" (e.g. "22:00-06:00" for overnight)
  • --value VALUE: output value during the scheduled period (default: 1)
  • A DayTimer must be created first with lox config add --type DayTimer
  • DayTimer schedule is NOT set via set-param — use this command

Verify your work

lox config check FILE

Checks automation blocks for completeness: unset parameters, dead-end wiring, missing connections.

Test your circuit with the simulator

lox sim run FILE --sim '{"inputs":{"Sensor.AQ":value},"ticks":10,"dt":0.1,"expected_outputs":{"Target.Conn":{">":0.5}}}'
  • Runs signal propagation and checks expected outputs
  • Use AFTER wiring to verify the circuit works
  • Outputs JSON with pass/fail and actual values
  • Comparators: >, >=, <, <=, ==, ~= (±5%)

Color values (RGBW actors, <v.col>)

Loxone colour inputs (analog colour value <v.col>, e.g. the "Smartaktor RGBW" colour input) take a composite integer. Use lox color to compute/inspect it instead of guessing:

lox color encode --rgb 100,40,0                  # → composite 40100, hsv(24,100,16)
lox color encode --rgb 255,100,0 --brightness 15 # warm amber dimmed to 15%
lox color encode --hsv 24,100,100                # from HSV
lox color encode --hsv 120,100,10 --mood         # → mood value 1610622736 (LightsceneC Qn)
lox color encode --kelvin 2700 --brightness 15   # tunable white → temp(15,2700) command
lox color decode 40100                           # → 100,40,0
lox color decode 1610622736                      # → mood value: percent 0,10,0 / hsv(120,100,10)
lox color decode "hsv(0,100,100)"                # parse a command string

Encodings:

  • RGB composite integer = red + green*1000 + blue*1000000 (each channel 0..255). This is a base-1000 packing — NOT 24-bit 0xRRGGBB. E.g. 100,40,040100. This is the integer you set-param/wire into a numeric colour input, and the value the Miniserver expects for that input. --brightness P scales the channels to P%.
  • Mood value (--mood) = 0x60000000 + (R% + G%*1000 + B%*1000000) with percent channels (0..100). This is the LightsceneC Qn packing — distinct from the actor composite above — used by config set-mood-color. Do not confuse the two.
  • HSV is accepted/printed as the ColorPickerV2 command string hsv(<hue 0..360>,<sat 0..100>,<val 0..100>).
  • Tunable white / colour temperature uses the command string temp(<brightness 0..100>,<kelvin>) (there is no portable composite integer for colour temperature — send the temp(...) string to the ColorPickerV2 control). Older firmware also accepts lumitech(brightness,kelvin).

Live read / write against a running Miniserver

lox live get  "uuid:<control>"            # read current state (read-only)
lox live set  "uuid:<control>" on --write # send a jdev command (needs --write)
lox live time                             # Miniserver clock
  • lox live wraps /jdev/sps/io/<uuid>/<cmd>. It is read-only by default — state-changing commands require the explicit --write flag.
  • Use it to verify a deployed circuit (e.g. select a mood: lox live set "uuid:<lc>" changeTo/<SID> --write).

Block Discovery

Before adding blocks, search for the right type:

lox blocks search "what you want" -o json
lox blocks info TypeName -o json

Key distinction: StairwayLS vs OnPulseDelay vs OffDelay

Choose the right timer block based on behavior:

BlockBehaviorUse When
StairwayLSTrigger → ON immediately for TimeHigh seconds → OFF"turn on light for 5 min", "garage light when door opens"
OnPulseDelayTrigger → WAIT Delay seconds → ON for Duration → OFF"wait 10s then beep for 2s", "delayed pump start"
OffDelayInput ON → Output ON. Input OFF → Output stays ON for Time more seconds → OFF"fan stays on 10 min after light turns off"
Monoflop

Content truncated.

When not to use it

  • Without lox CLI binary on PATH

Prerequisites

lox CLI binary

Limitations

  • Creating a brand-new mood is not yet supported

How it compares

Enables configuration-as-code for Loxone systems instead of manual GUI interaction.

Compared to similar skills

loxone-config side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
loxone-config (this skill)02moReviewIntermediate
webapp-testing3533moReviewIntermediate
resolve-conflicts818moReviewIntermediate
telegram-bot-builder1066moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

webapp-testing

anthropics

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

353585

resolve-conflicts

antinomyhq

Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling deleted-but-modified files with backup and analysis.

81334

telegram-bot-builder

davila7

Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.

106130

dev-browser

SawyerHood

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.

53176

openspec-onboard

studyzy

Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.

10207

codex-cli-bridge

alirezarezvani

Bridge between Claude Code and OpenAI Codex CLI - generates AGENTS.md from CLAUDE.md, provides Codex CLI execution helpers, and enables seamless interoperability between both tools

9180

Search skills

Search the agent skills registry