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.zipInstalls 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.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
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 configPAGE: page name for the programming layout (usually same as room)FILE: path to the.Loxoneconfig file--device SELECTOR: bind a device-bound control (e.g.--type alarm-clock) to aLoxAIRDevice/TreeDevice. EmitsDev=<deviceUuid>. SELECTOR may be a title,uuid:…, orType:….
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 wireshides. - Also surfaces the device binding (
Dev=) when present. - Selector may be a title (fuzzy),
uuid:…,Type:…, orgid:…. 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 attributesMaxVal/MinVal/MinChange/MinTime/Step(e.g.set-param FILE "Druck" MaxVal 1100). A too-low analogMaxValsilently clamps incoming values to 0 —config checkwarns about an implausibly low pressure-VIMaxVal(≤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
--addto 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
OutputRefblock itself, or the device actor it drives (the driving OutputRef is found automatically viaactor.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 —onactivates the configured warm-white mood andhsv(...)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>'sQ1(use--output-index NforQn). --coloracceptshsv(...),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. Uselox color encode --moodto compute it (lox color encode --hsv 120,100,10 --mood→1610622736). 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 customSID(base 2, skipping reserved 1/776/777/778) andCID(base 9),Outputsmirrored from the container,Q1= packed mood value,Q2..Qn= 0, andNumincremented. --sid N/--cid Noverride 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 itsInputRefconverter), auto-assigns the next freeIName, and wiresIoData Pr/Cr. Push values via/jdev/sps/io/<uuid>/<value>; wire blocks FROM itsInputRef.AQ. - Analog VIs do not emit a default
MaxVal— pass--maxonly if you want clamping (a defaultMaxValsilently 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 channel0..255). This is a base-1000 packing — NOT 24-bit0xRRGGBB. E.g.100,40,0→40100. This is the integer youset-param/wireinto a numeric colour input, and the value the Miniserver expects for that input.--brightness Pscales the channels toP%. - Mood value (
--mood) =0x60000000 + (R% + G%*1000 + B%*1000000)with percent channels (0..100). This is theLightsceneCQnpacking — distinct from the actor composite above — used byconfig 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 thetemp(...)string to the ColorPickerV2 control). Older firmware also acceptslumitech(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 livewraps/jdev/sps/io/<uuid>/<cmd>. It is read-only by default — state-changing commands require the explicit--writeflag.- 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:
| Block | Behavior | Use When |
|---|---|---|
| StairwayLS | Trigger → ON immediately for TimeHigh seconds → OFF | "turn on light for 5 min", "garage light when door opens" |
| OnPulseDelay | Trigger → WAIT Delay seconds → ON for Duration → OFF | "wait 10s then beep for 2s", "delayed pump start" |
| OffDelay | Input 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
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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| loxone-config (this skill) | 0 | 2mo | Review | Intermediate |
| webapp-testing | 353 | 3mo | Review | Intermediate |
| resolve-conflicts | 81 | 8mo | Review | Intermediate |
| telegram-bot-builder | 106 | 6mo | Review | Intermediate |
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.
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.
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.
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.
openspec-onboard
studyzy
Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.
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