# Describes the format for available LCN services

output_abs:
  description: Set absolute brightness of output port in percent.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    output:
      description: Output port
      example: "output1"
    brightness:
      description: Absolute brightness in percent (0..100)
      example: 50
    transition:
      description: Transition time in seconds
      example: 5

output_rel:
  description: Set relative brightness of output port in percent.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    output:
      description: Output port
      example: "output1"
    brightness:
      description: Relative brightness in percent (-100..100)
      example: 50
    transition:
      description: Transition time in seconds
      example: 5

output_toggle:
  description: Toggle output port.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    output:
      description: Output port
      example: "output1"
    transition:
      description: Transition time in seconds
      example: 5

relays:
  description: Set the relays status.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    state:
      description: Relays states as string (1=on, 2=off, t=toggle, -=nochange)
      example: "t---001-"

led:
  description: Set the led state.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    led:
      description: Led
      example: "led6"
    state:
      description: Led state
      example: "blink"
      values:
        - "on"
        - "off"
        - blink
        - flicker

var_abs:
  description: Set absolute value of a variable or setpoint.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    variable:
      description: Variable or setpoint name
      example: "var1"
    value:
      description: Value to set
      example: "50"
    unit_of_measurement:
      description: Unit of value
      example: "celsius"

var_reset:
  description: Reset value of variable or setpoint.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    variable:
      description: Variable or setpoint name
      example: "var1"

var_rel:
  description: Shift value of a variable, setpoint or threshold.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    variable:
      description: Variable or setpoint name
      example: "var1"
    value:
      description: Shift value
      example: "50"
    unit_of_measurement:
      description: Unit of value
      example: "celsius"
    value_reference:
      description: Reference value (current or programmed) for setpoint and threshold
      example: "current"
      values:
        - current
        - prog

lock_regulator:
  description: Lock a regulator setpoint.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    setpoint:
      description: Setpoint name
      example: "r1varsetpoint"
    state:
      description: New setpoint state
      example: true

send_keys:
  description: Send keys (which executes bound commands).
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    keys:
      description: Keys to send
      example: "a1a5d8"
    state:
      description: "Key state upon sending (optional, must be hit for deferred)"
      example: "hit"
      values:
        - hit
        - make
        - break
    time:
      description: Send delay (optional)
      example: 10
    time_unit:
      description: Time unit of send delay (optional)
      example: "s"

lock_keys:
  description: Lock keys.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    table:
      description: "Table with keys to lock (optional, must be A for interval)."
      example: "A5"
    state:
      description: Key lock states as string (1=on, 2=off, T=toggle, -=nochange)
      example: "1---t0--"
    time:
      description: Lock interval (optional)
      example: 10
    time_unit:
      description: Time unit of lock interval (optional)
      example: "s"

dyn_text:
  description: Send dynamic text to LCN-GTxD displays.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    row:
      description: Text row 1..4 (support of 4 independent text rows)
      example: 1
    text:
      description: Text to send (up to 60 characters encoded as UTF-8)
      example: "text up to 60 characters"

pck:
  description: Send arbitrary PCK command.
  fields:
    address:
      description: Module address
      example: "myhome.s0.m7"
    pck:
      description: PCK command (without address header)
      example: "PIN4"
