一键导入
loxone-config
Configure Loxone Miniserver automation. Add blocks, wire circuits, set params, validate with simulator. Use for any home/building automation task.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Configure Loxone Miniserver automation. Add blocks, wire circuits, set params, validate with simulator. Use for any home/building automation task.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Test Loxone automation circuits with the SPS simulator. Verify signal propagation, check behavioral correctness. Use after building a circuit to validate it works.
Reference patterns for Loxone automation. Threshold, AND/OR logic, timers, schedules, presence, irrigation, blinds, HVAC. Use as recipe book.
| name | loxone-config |
| description | Configure Loxone Miniserver automation. Add blocks, wire circuits, set params, validate with simulator. Use for any home/building automation task. |
| license | AGPL-3.0 |
| metadata | {"author":"eisber","version":"1.0"} |
| compatibility | Requires lox CLI binary on PATH |
| allowed-tools | Bash |
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.
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 .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:….lox config connectors FILE "SelectorOrUuid"
lox config wires hides.Dev=) when present.uuid:…, Type:…, or gid:…. Alias: lox config conns.set-param/wire-connector.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.)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).lox config wire-connector FILE "TargetBlock.InputConnector" "SourceBlock.OutputConnector"
"Jalousie 1 [Wohnzimmer].InputTriggerDown""uuid:<actor>.<connectorKey>" (e.g.
"uuid:0f8e1234-….AI1") — useful for device actors that aren't easily named.uuid:-prefixed (the prefix is stripped).--add to append an additional source instead. A warning is printed if
the source is not a real output connector.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>"
OutputRef block itself, or the device actor it drives
(the driving OutputRef is found automatically via actor.I ← OutputRef.AQ).wire-connector FILE "uuid:<outputref>.AI" "uuid:<source>".lox config moods FILE "uuid:<lightcontroller>"
Name, SID, CID, UUID.lox live set <controller> changeTo/<SID> --write.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.lox config set-mood-color FILE "uuid:<lightcontroller>" --mood <SID|Name> --color "hsv(120,100,10)"
<LightsceneC>'s Q1 (use --output-index N for Qn).--color accepts hsv(...), rgb(...), or a raw mood value.<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 --mood → 1610622736). Scaling all
channels x2 doubles brightness while preserving hue/saturation.lox config add-mood FILE "uuid:<lightcontroller>" --name "Teams purple" --color "hsv(300,100,30)"
<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.lox live set <controller> changeTo/<SID> --write.lox config add --type virtual-input --title "Teams Color" --analog [--min N --max N --unit "<v>"] FILE
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.MaxVal — pass --max only if you want
clamping (a default MaxVal silently clamps a colour composite).lox config timer-schedule FILE "DayTimerTitle" "HH:MM-HH:MM" --value VALUE
"HH:MM-HH:MM" (e.g. "22:00-06:00" for overnight)--value VALUE: output value during the scheduled period (default: 1)lox config add --type DayTimerset-param — use this commandlox config check FILE
Checks automation blocks for completeness: unset parameters, dead-end wiring, missing connections.
lox sim run FILE --sim '{"inputs":{"Sensor.AQ":value},"ticks":10,"dt":0.1,"expected_outputs":{"Target.Conn":{">":0.5}}}'
>, >=, <, <=, ==, ~= (±5%)<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:
red + green*1000 + blue*1000000 (each channel 0..255). This is a
base-1000 packing — NOT 24-bit 0xRRGGBB. E.g. 100,40,0 → 40100. 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) = 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(<hue 0..360>,<sat 0..100>,<val 0..100>).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).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.lox live set "uuid:<lc>" changeTo/<SID> --write).Before adding blocks, search for the right type:
lox blocks search "what you want" -o json
lox blocks info TypeName -o json
⚠ 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 | Trigger → ON for Time seconds (re-triggerable) | "pulse for exactly N seconds" |
Decision rule:
| Sensor | Output | Signal |
|---|---|---|
| Außentemperatur | .AQ | Temperature °C |
| Sonnenschein | .AQ | Sunshine 0/1 |
| Windgeschwindigkeit | .AQ | Wind speed km/h |
| Regen | .AQ | Rain 0/1 |
| Luftfeuchtigkeit | .AQ | Humidity % |
| Helligkeit | .AQ | Brightness lux |
| CO2 Sensor | .AQ | CO2 ppm |
| Bewegungsmelder | .OutputPresence | Motion 0/1 (Flur) |
| Bewegungsmelder Garten | .OutputPresence | Motion 0/1 (Garten) |
| Türkontakt Eingang | .Q | Door contact 0/1 |
| Türklingel | .Q | Doorbell pulse |
| Pool Temperatur | .AQ | Pool temp °C |
| Raumtemperatur Wohnzimmer | .AQ | Room temp °C |
| Raumtemperatur Schlafzimmer | .AQ | Room temp °C |
| Raumtemperatur Bad | .AQ | Room temp °C |
| Raumtemperatur Küche | .AQ | Room temp °C |
| Raumtemperatur Flur | .AQ | Room temp °C |
| Schalter 1 | .Q | Switch 0/1 |
| Schalter 2 | .Q | Switch 0/1 |
| Feuchtesensor Garten | .AQ | Soil moisture % |
| Rauchmelder | .Q | Smoke alarm 0/1 |
| Wassersensor | .Q | Water alarm 0/1 |
| Pegelsensor | .AQ | Water level m |
| Fensterkontakt * | .Q | Window contact per room |
| Türkontakt * | .Q | Door contact per room |
| Solarproduktion | .AQ | PV production W |
| Hausverbrauch | .AQ | House consumption W |
| Stromverbrauch WP | .AQ | Heat pump power W |
| Wärmeleistung WP | .AQ | Heat pump output W |
| Vorlauftemperatur | .AQ | Flow temperature °C |
| Puffertemperatur | .AQ | Buffer tank temp °C |
| Warmwasserspeicher | .AQ | DHW tank temp °C |
| Kesseltemperatur | .AQ | Boiler temp °C |
IMPORTANT: Always use existing fixture sensors instead of creating VirtualIn blocks. The fixture has sensors for every room and common HVAC/energy measurements. If you need a sensor that doesn't exist, check the fixture first with lox config describe.
| Actuator | Room | Key Inputs |
|---|---|---|
| Jalousie 1, Jalousie 2 | each room | .InputTriggerDown, .InputTriggerUp, .InputDisable |
| Lichtsteuerung | each room | .I1 (on/off), .Presence, .Brightness |
| Klimaanlage | Wohnzimmer | .toggle |
| Poolpumpe | Garten | .I1 |
| Lüfter Bad | Bad | .I1 |
| Raumregler | Wohnzimmer | .Temp (measured), .Setpoint (target) |
| Heizkörper Bad | Bad | .I1 |
| Garagenlicht | Garage | .I1 |
| Garagentor | Garage | .I1 |
| Gartenbeleuchtung | Garten | .I1 |
| Bewässerungsventil | Garten | .I1 |
| Türöffner | Flur | .I1 |
| Alarmanlage | Flur | .I (StateV — wire trigger to .I) |
| Statusblock | Wohnzimmer | .I (StateV — wire value to .I) |
| Audiozone | Wohnzimmer | .I (StateV — wire trigger to .I) |
| Wallbox | Garage | .I (StateV — wire control to .I) |
| Heizstab | Bad | .I (StateV — wire control to .I) |
| Steckdose | Küche | .I (StateV — wire control to .I) |
| Türschloss | Flur | .I (StateV — wire unlock to .I) |
| Batteriespeicher | Garage | .I (StateV — wire control to .I) |
lox config addlox config set-param (thresholds, durations, factors)lox config wire-connector (always TARGET first, then SOURCE)lox config timer-schedule (only for DayTimer blocks)lox sim run FILE --sim '...' to verify signals propagate correctlylox config check FILElox config add --type GreaterEqual --title "Temp über 25" --room Wohnzimmer --page Wohnzimmer config.Loxone
lox config set-param config.Loxone "Temp über 25" Input2 25
lox config add --type And --title "Sonne und Warm" --room Wohnzimmer --page Wohnzimmer config.Loxone
lox config wire-connector config.Loxone "Temp über 25.Input1" "Außentemperatur.AQ"
lox config wire-connector config.Loxone "Sonne und Warm.I1" "Sonnenschein.AQ"
lox config wire-connector config.Loxone "Sonne und Warm.I2" "Temp über 25.Q"
lox config wire-connector config.Loxone "Jalousie 1 [Wohnzimmer].InputTriggerDown" "Sonne und Warm.Q"
lox sim run config.Loxone --sim '{"inputs":{"Außentemperatur.AQ":30,"Sonnenschein.AQ":1},"ticks":10,"dt":0.1,"expected_outputs":{"Jalousie 1 [Wohnzimmer].InputTriggerDown":{">":0.5}}}'
lox config check config.Loxone
Two digital signals must both be true:
lox config add --type And --title "Beide aktiv" --room Wohnzimmer --page Wohnzimmer config.Loxone
lox config wire-connector config.Loxone "Beide aktiv.I1" "Bewegungsmelder.OutputPresence"
lox config wire-connector config.Loxone "Beide aktiv.I2" "Schalter 1.Q"
lox config wire-connector config.Loxone "Lichtsteuerung [Wohnzimmer].I1" "Beide aktiv.Q"
Reduce brightness at night (22:00–06:00) to 30%:
lox config add --type DayTimer --title "Nachtzeit" --room Wohnzimmer --page Wohnzimmer config.Loxone
lox config timer-schedule config.Loxone "Nachtzeit" "22:00-06:00" --value 30
lox config add --type Mult --title "Nacht Dimmer" --room Wohnzimmer --page Wohnzimmer config.Loxone
lox config wire-connector config.Loxone "Nacht Dimmer.Input1" "Nachtzeit.AQ"
lox config wire-connector config.Loxone "Lichtsteuerung [Wohnzimmer].Brightness" "Nacht Dimmer.AQ"
Irrigate only when NOT raining:
lox config add --type Not --title "Kein Regen" --room Garten --page Garten config.Loxone
lox config wire-connector config.Loxone "Kein Regen.I" "Regen.AQ"
lox config add --type And --title "Bewässerung aktiv" --room Garten --page Garten config.Loxone
lox config wire-connector config.Loxone "Bewässerung aktiv.I1" "Kein Regen.Q"
lox config wire-connector config.Loxone "Bewässerung aktiv.I2" "Schalter 1.Q"
lox config wire-connector config.Loxone "Lichtsteuerung [Flur].Presence" "Bewegungsmelder.OutputPresence"
lox config add --type StairwayLS --title "Treppenlicht" --room Flur --page Flur config.Loxone
lox config set-param config.Loxone "Treppenlicht" TimeHigh 300
lox config wire-connector config.Loxone "Treppenlicht.InputTrigger" "Bewegungsmelder.OutputPresence"
lox config wire-connector config.Loxone "Lichtsteuerung [Flur].I1" "Treppenlicht.Q"
lox config check config.Loxone
Use OffDelay (NOT OnPulseDelay) — output stays ON for Time seconds after input goes LOW:
lox config add --type OffDelay --title "Lüfter Nachlauf" --room Bad --page Bad config.Loxone
lox config set-param config.Loxone "Lüfter Nachlauf" Time 600
lox config wire-connector config.Loxone "Lüfter Nachlauf.InputTrigger" "Lichtsteuerung [Bad].AQ1"
lox config wire-connector config.Loxone "Lüfter Bad.I1" "Lüfter Nachlauf.Q"
lox config check config.Loxone
Always wire the threshold output TO the actuator — don't leave outputs disconnected:
lox config add --type GreaterEqual --title "CO2 hoch" --room Küche --page Küche config.Loxone
lox config set-param config.Loxone "CO2 hoch" Input2 1000
lox config wire-connector config.Loxone "CO2 hoch.Input1" "CO2 Sensor.AQ"
lox config wire-connector config.Loxone "Jalousie 1 [Küche].InputTriggerDown" "CO2 hoch.Q"
lox config check config.Loxone
Wire room sensor to .Temp (NOT .TempO!) and setpoint to .Setpoint:
lox config add --type Constant --title "Sollwert 22" --room Wohnzimmer --page Wohnzimmer config.Loxone
lox config set-param config.Loxone "Sollwert 22" Value 22
lox config wire-connector config.Loxone "Raumregler.Temp" "Raumtemperatur Wohnzimmer.AQ"
lox config wire-connector config.Loxone "Raumregler.Setpoint" "Sollwert 22.Q"
lox config check config.Loxone
Use AMemory to store a value (e.g., 21°C) when a switch is pressed:
lox config add --type AMemory --title "Temp Speicher" --room Wohnzimmer --page Wohnzimmer config.Loxone
lox config set-param config.Loxone "Temp Speicher" Input 21
lox config wire-connector config.Loxone "Temp Speicher.Trigger" "Schalter 1.Q"
lox config wire-connector config.Loxone "Raumregler.Setpoint" "Temp Speicher.AQ"
"Target.Input" "Source.Output" — not the other way around.lox config timer-schedule, NOT set-param. The schedule is not a simple parameter."Jalousie 1 [Wohnzimmer]" to disambiguate.Input1 not input1, InputTrigger not Trigger, AQ not aq.lox config check to verify..Temp = measured room temperature ← wire the room temperature SENSOR here.Setpoint = desired target temperature ← wire a constant or Memory block here.TempO = outside temperature info (for weather compensation only, NOT for room temp!).Reset = reset to default.TempO, .Input, .Comfort, or .Save — these are for different purposes..AQh = heating valve demand (0-100%), .AQc = cooling demandset-param FILE "BlockTitle" TimeHigh 300 (5 minutes = 300 seconds)set-param FILE "BlockTitle" Time 600 (10 minutes = 600 seconds)set-param FILE "BlockTitle" Time 300set-param FILE "BlockTitle" Duration 180lox blocks info <type> first. Connector names vary between types — don't guess.Raumtemperatur <Room>.AQ (TreeAsensor), NOT from Raumregler.AQh (controller output)Windgeschwindigkeit.AQ (SysVar), NOT from another block's filtered outputRaumfeuchtigkeit <Room>.AQ (TreeAsensor)Bewegungsmelder.OutputPresence (PresenceDetector), NOT from door contactstimer-schedule entries outputs 0 forever. Always add at least one schedule entry after creating a DayTimer.lox config check FILE — errors on unwired inputs mean the circuit is incomplete.Time seconds after input drops to 0 — that's the timeout. Use EdgeDetection.FallingEdge on the OffDelay output to fire a pulse when the timeout expires.
Or(presence) → OffDelay(1800s) → EdgeDetection.FallingEdge → targetOr(presence) → Not → OffDelay — this inverts the signal so OffDelay never times outOr(presence) → OffDelay(1800s) → Not → target (3 blocks, no EdgeDetection needed)For convenience, these short aliases are available:
| Alias | Full Command |
|---|---|
lox config wire | lox config wire-connector |
lox config set | lox config set-param |
lox config get | lox config get-params |
lox config bind | lox config device-bind |
lox config add-vi | lox config add-virtual-in |
Use lox blocks search "keyword" or lox blocks info TypeName to discover blocks.
| Category | Types |
|---|---|
| Logic | And, Or, Not, Xor, FlipFlop, AMemory, Counter |
| Math | Add, Sub, Mult, Div, Mod, Avg, Minmax, Constant |
| Compare | GreaterEqual, Greater, Less, LessEqual |
| Timer | StairwayLS, Monoflop, OnPulseDelay, OffDelay, PulseGen |
| Schedule | DayTimer, AlarmClock, PulseAt, PulseBy |
| State | State, StateV, AMemory, Counter |
| Lighting | LightController2, LightControllerH, BrightnessControl, CentralLight |
| Shading | JalousieUpDown2, AutoJalousie, DaylightController, CentralShade |
| HVAC | HeatIRoomController2, Heatmixer2, HVACController, Ventilation, Ventilation2 |
| Security | Alarm, AlarmChain, CentralAlarm, SmokeAlarm, WindowsMonitor, Doorcontroller |
| Energy | EnergyManager2, SpotOpt, LoadShed, Wallbox |
| I/O | InputRef, OutputRef, VirtualIn, VirtualOut |
| Misc | StatusMonitor, Presence, PresenceController, Irrigation |
Connector reference for less common block types. Always verify with lox blocks info <type>.
Input (analog value to control)Q (digital on/off)On (threshold to turn on), Off (threshold to turn off), PulseTime, MinRuntimelox config add --type 2Point --title "Heizung" config.Loxone
lox config set-param config.Loxone "Heizung" On 19
lox config set-param config.Loxone "Heizung" Off 21
lox config wire-connector config.Loxone "Heizung.Input" "Raumtemperatur Wohnzimmer.AQ"
InputQ1 (heat), Q2 (cool)On1, Off1 (heat band), On2, Off2 (cool band)Trigger (count pulse), InputDir (0=up, 1=down), ResetAQ (count value), Q (output)StartValue (default 0), OnValue (default 10), OffValue (default 5)InputEnable (count while high), ResetAQ (hours), Q (threshold exceeded)Maintenance (hour threshold)The SequenceController executes a text program line-by-line. Use it for multi-step processes (irrigation zones, heating sequences, startup procedures).
Trigger1–Trigger8 (start sequence 1-8), AI1–AI8 (analog inputs), ATrigger (select sequence by number), Off (reset/lock)AQ1–AQ8 (analog outputs), OutputCurrSequence, OutputCurrLine, TQ (text)Interval (execution speed, default 500ms)⚠ CRITICAL: A SequenceController without a program does NOTHING. After creating the block, you MUST write a program:
lox config set-program FILE "Block Title" "sequence 1
set AQ1 = 1
sleep 15 m
set AQ1 = 0
set AQ2 = 1
sleep 15 m
set AQ2 = 0"
Program commands:
set AQ1 = AI1 + 3 — set output/variable to expressionsleep 15 m or sleep 300 s — wait (minutes or seconds)waitcondition AI1 > 5 — wait until condition is trueif AQ1 > 3 ... endif — conditional blockgoto 1 — jump to linestartsequence 2 / return — call another sequencesetpulse AQ1 — one-tick pulse// comment — documentationInputTriggerQ1 (single), Q2 (double), Q3 (triple), Q4 (quad), AQ (value output)Max (time window for multi-click, default 0.35s), Time (output on-duration, default 0.1s)InputTriggerQ (toggle output)TimeHigh (on-duration, default 180s), TimeTrigger (long-click threshold, default 0.5s)InputTrigger 1–InputTrigger 8, InputTriggerP (+), InputTriggerM (-), InputSel (direct select)AQ (selected index), Q1–Q8 (individual)"Radio.InputTrigger 1"InputTriggerP (step up), InputTriggerM (step down), InputSel (direct select 0-16)Q1–Q8 (active step), AQ (current step number)ModeInputTrigger 1 (up/brighter), InputTrigger 2 (down/dimmer), InputTrigger On, InputTrigger Off, Position (set value 0-100), InputDisableAQ (dimmer value), Q (on/off state)"EibDimmer.InputTrigger 1"Trigger (clock pulse), InputData (data bit), InputDir (shift direction)Q (register output)Bit (register size, default 8)InputQ (alarm: out of range)Min, Max, Time (delay before alarm)InputAQInMin, InMax, OutMin, OutMaxInputBrightness (measured), InputEnableAQ (dimmer value 0–100%)Target (lux), Min, MaxInput1, Input2, Input3, Input4AQ0 → output 0 (off), 1 → Input1, … 4 → Input4.Input1, Input2AQ0 → output 0 (off),
1 → Input1, 2 → Input2. Foot-gun: a digital 0/1 signal selects
off/Input1, never Input2 — feed Select = override ? 2 : 1 to switch between
the two inputs. The simulator prints a warning when a Select input is wired,
as a reminder of the 1-based convention.InputTrigger, InputResetAQ (0→100% over time)RampTime (seconds)InputTriggerAQMin, MaxTrigger (count pulse)Q (1 when count reaches EndValue), AQ (current count)EndValue (target count, default 1000), ModeInputEdge (pulse on any edge), RisingEdge (pulse on 0→1), FallingEdge (pulse on 1→0)PulseTime (output pulse duration, default 1s)InputTriggerQ (delayed output)Time (delay duration in seconds, default 1)Trigger (toggle on/off), Input (target temp °C), Temp (measured temp °C), InputH (target humidity), Humidity (measured humidity), DoorSensor, On (state)AQ (heater output 0–10V), Qa (sauna state on/off), Qe (safety shutdown), Qr (sauna ready)SafeTemp (safety shutdown temp, default 139°C), Time (operating time, default 600s), SafeTime (max safety time, default 7200s), DryTemp (drying temp, default 70°C)Temp (outdoor temperature °C), Stop, CoolAvailable, HeatAvailableOutHeat1 (heating demand), OutCool1 (cooling demand), OutMaintenanceMode (0–3), TempLimitC (temp above which cooling allowed, default 18°C), TempLimitH (temp below which heating allowed, default 15°C)P1 (consumption pulses), P2 (delivery/export pulses), F1 (consumption frequency), F2 (delivery frequency)OMr1 (consumption meter reading), OMr2 (delivery meter reading), OPf (power)Np1 (pulses per unit consumption), Np2 (pulses per unit delivery)AQ (current value)Analog="true" for analog values, Analog="false" for digital switches