Summary

The Leviton VRC0P is an RS-232 serial interface module for the Vizia RF + Z-Wave lighting control system. This spec covers ASCII programming commands for controlling Z-Wave nodes (dimmers, switches, scenes, groups, thermostats, door locks) over a serial port at 9600 baud, with optional higher baud rates.

Transport

protocols:
  - serial
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable       # inferred from ON/OFF command examples
- routable        # inferred from RO (routes) and group/scene commands
- queryable       # inferred from ?, UP, FI query commands
- levelable       # inferred from L (set level 0-100) and DI/BR dim/bright commands

Actions

# Note: message prefix ">" is required; messages use uppercase ASCII.
# Format: >N[node(s)]CMD[params]  e.g. >N2ON  >N2,5,10L50  >GR1
# Default baud 9600; SP command can switch baud (see communication_speed).

- id: associate_nodes
  label: Start Association (N)
  kind: action
  command: ">N{node_list}"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs (e.g. "2" or "2,5,10"), or empty to clear association

- id: on
  label: On (ON)
  kind: action
  command: ">N{node_list}ON"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs, or empty for broadcast

- id: off
  label: Off (OFF)
  kind: action
  command: ">N{node_list}OFF"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs, or empty for broadcast

- id: set_level
  label: Set Level (L)
  kind: action
  command: ">N{node_list}L{level}"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs
    - name: level
      type: integer
      description: Light level 0-100 (percent)

- id: group_recall_on
  label: Group Recall On (GR + ON)
  kind: action
  command: ">GR{group}\r\n>ON"
  params:
    - name: group
      type: integer
      description: Group number stored via GS command

- id: group_recall_level
  label: Group Recall Set Level (GR + L)
  kind: action
  command: ">GR{group}\r\n>L{level}"
  params:
    - name: group
      type: integer
      description: Group number stored via GS command
    - name: level
      type: integer
      description: Light level 0-100

- id: group_recall_dim
  label: Group Recall Dim (GR + DI)
  kind: action
  command: ">GR{group}\r\n>DI"
  params:
    - name: group
      type: integer
      description: Group number

- id: group_recall_bright
  label: Group Recall Bright (GR + BR)
  kind: action
  command: ">GR{group}\r\n>BR"
  params:
    - name: group
      type: integer
      description: Group number

- id: group_recall_stop
  label: Group Recall Stop (GR + ST)
  kind: action
  command: ">GR{group}\r\n>ST"
  params:
    - name: group
      type: integer
      description: Group number

- id: group_recall_scene
  label: Group Recall Scene (GR + S)
  kind: action
  command: ">GR{group}\r\n>S{scene},{fade}"
  params:
    - name: group
      type: integer
      description: Group number
    - name: scene
      type: integer
      description: Scene number 1-255
    - name: fade
      type: integer
      description: Fade rate 1-255

- id: scene_activate
  label: Scene Activate (S)
  kind: action
  command: ">N{node_list}S{scene}"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs
    - name: scene
      type: integer
      description: Scene number 1-255

- id: dim
  label: Dim (DI)
  kind: action
  command: ">N{node_list}DI"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs

- id: bright
  label: Bright (BR)
  kind: action
  command: ">N{node_list}BR"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs

- id: stop
  label: Stop (ST)
  kind: action
  command: ">N{node_list}ST"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs
  notes: "Requires 1-2 ms between DI and BR commands"

- id: send_zwave
  label: Send Z-Wave Message (SE)
  kind: action
  command: ">N{node}SE{cmd_class},{cmd},{params}"
  params:
    - name: node
      type: integer
      description: Node ID
    - name: cmd_class
      type: integer
      description: Z-Wave command class
    - name: cmd
      type: integer
      description: Z-Wave command
    - name: params
      type: string
      description: Comma-separated command-class-specific parameters

- id: secure_send
  label: Secure Send Z-Wave Message (SS)
  kind: action
  command: ">N{node}SS{cmd_class},{cmd},{params}"
  params:
    - name: node
      type: integer
      description: Node ID (e.g. door lock)
    - name: cmd_class
      type: integer
      description: Z-Wave command class
    - name: cmd
      type: integer
      description: Z-Wave command
    - name: params
      type: string
      description: Comma-separated parameters
  notes: "Requires VRC0P +3 back label and RF Installer Tool as primary"

- id: request_status
  label: Request Information (?)
  kind: kind: action
  command: ">?N{node}"
  params:
    - name: node
      type: integer
      description: Node ID

- id: update
  label: Update (UP)
  kind: action
  command: ">N{node_list}UP"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs
  notes: "Append to control commands; wait a few seconds between control and update"

- id: find_node
  label: Find Node (FI)
  kind: action
  command: ">FI{bbb},{ggg},{sss},{iii}"
  params:
    - name: bbb
      type: integer
      description: Basic class (1=Controller, 2=Static Controller, 3=Slave, 4=Routing Slave)
    - name: ggg
      type: integer
      description: Generic class (16=switch, 17=dimmer, 8=thermostat)
    - name: sss
      type: integer
      description: Specific class (0=any if omitted)
    - name: iii
      type: integer
      description: Instance 1-232

- id: communication_speed
  label: Communication Speed (SP)
  kind: action
  command: ">SP{x}"
  params:
    - name: x
      type: integer
      description: "Baud rate index: 0=9600 (default), 1=19200, 2=38400, 3=57600, 4=115200"
  notes: "Requires VRC0P +3 back label. Returns to 9600 after power cycle."

- id: group_store
  label: Group Store (GS)
  kind: action
  command: ">N{node_list}GS{group}"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs
    - name: group
      type: integer
      description: Group number to store association under

- id: program_scene
  label: Program Scene (PS)
  kind: action
  command: ">N{node_list}PS{scene},{fade}"
  params:
    - name: node_list
      type: string
      description: Comma-separated node IDs
    - name: scene
      type: integer
      description: Scene number 2-255
    - name: fade
      type: integer
      description: Fade rate 1-255 (255 = default)

- id: append
  label: Append (AP)
  kind: action
  command: ">AP{node_list},{cmd}"
  params:
    - name: node_list
      type: string
      description: Additional comma-separated node IDs
    - name: cmd
      type: string
      description: Continuation of prior command (e.g. ON, OFF)

- id: node_name
  label: Node Name (NN)
  kind: action
  command: ">N{node}NN{charset}{name}"
  params:
    - name: node
      type: integer
      description: Node ID
    - name: charset
      type: integer
      description: "0=standard ASCII, 1=extended ASCII (recommended), 2=Unicode UTF-8"
    - name: name
      type: string
      description: Up to 16 characters

- id: node_location
  label: Node Location (NL)
  kind: action
  command: ">N{node}NL{charset}{location}"
  params:
    - name: node
      type: integer
      description: Node ID
    - name: charset
      type: integer
      description: "0=standard ASCII, 1=extended ASCII (recommended), 2=Unicode UTF-8"
    - name: location
      type: string
      description: Up to 16 characters

- id: default_reset
  label: Default Reset (DE)
  kind: action
  command: ">DE"
  notes: "Hold LED button on RS-232 module while sending"

- id: include_exclude
  label: Include/Exclude Mode (IN)
  kind: action
  command: ">IN"
  notes: "Puts module into include or exclude mode"

- id: abort
  label: Abort (AB)
  kind: action
  command: ">AB"
  notes: "Cancels any prior transmission from serial interface"

- id: routes
  label: Routes (RO)
  kind: action
  command: ">RO{node},{target}"
  params:
    - name: node
      type: integer
      description: Routing slave node ID
    - name: target
      type: integer
      description: "Target node ID; 0 deletes all routes for node"

Feedbacks

# All replies framed as <...;
- id: ack
  type: enum
  values: [ok, error]
  description: "<Exxx reply where xxx is error code (000=no error)"

- id: error_code
  type: integer
  description: "0=no error, 1=wrong start symbol, 2=buffer overflow, 3=RF buffers full, 4=RF not finished, 5=unrecognized command, 6=RS232 buffer busy, 7=missing data fields, 8=cannot stop SUC mode, 9=EEPROM busy, 10=no devices found"

- id: rf_transmission_result
  type: enum
  values: [success, error]
  description: "<X000=success, <X002=error during transmission"

- id: node_report
  type: string
  description: "Format <Nxxx:ccc,cmd,ppp,value. Example: <N002:044,003,000,050 = node 2 dimmer level 50%"

- id: find_node_reply
  type: string
  description: "<Fxxx reports node ID found by FI command"

- id: scene_report
  type: string
  description: "<Nxxx:044,003,###,lll,fff where ###=scene, lll=level, fff=fade rate"

- id: thermostat_report
  type: string
  description: "<Nxxx:068,003,mmm = thermostat mode report"

- id: multilevel_sensor_report
  type: string
  description: "<Nxxx:049,005,001,009,075 = temperature 75F from sensor"

- id: security_nonce
  type: string
  description: "<Nxxx:152,128,... = security nonce message"

- id: door_lock_battery
  type: string
  description: "<nxxx:000,128,003,070 = door lock battery 70% (lowercase 'n')"

Variables

# UNRESOLVED: no settable parameter variables beyond command parameters listed in Actions

Events

- id: unsolicited_node_update
  description: "Device forwards Z-Wave messages not processed by the controller itself to serial output as <Nxxx:... replies"
- id: rf_transmission_complete
  description: "<Xyyy reply emitted after every RF transmission finishes"
- id: network_join_event
  description: "Reply emitted when module is added/removed from a Z-Wave network"

Macros

# UNRESOLVED: no multi-step macros defined in source beyond the multi-line GR+CMD patterns documented inline

Safety

confirmation_required_for:
  - default_reset   # DE command factory-resets the module
  - abort           # AB cancels any in-flight transmission
interlocks: []
# UNRESOLVED: voltage, current, wiring safety not stated in source. SS commands require VRC0P +3 back label and RF Installer Tool as primary.

Notes

  • All messages start with ">" and use uppercase ASCII; max 80 chars per line (use AP to extend).
  • Default serial: 9600 baud, 8N1, no flow control. SP command switches baud but returns to 9600 on power cycle.
  • DI/BR commands need 1-2 ms gap; UP appended after control commands for state sync; wait a few seconds before UP.
  • SP, SS, and Secure Send (SS) require VRC0P with "+3" on back label.
  • "FIND" (FI) basic/generic/specific class values: 0=any, 1=Controller, 2=Static Controller, 3=Slave, 4=Routing Slave; generic 16=switch, 17=dimmer, 8=thermostat.
  • Source titled "Vizia RF + RS232 Serial Interface ASCII Programming"; underlying physical product identified as Leviton SmartJack with model VRC0P.

Provenance

source_domains:
  - leviton.com
  - applicationmarket.crestron.com
source_urls:
  - https://leviton.com/content/dam/leviton/residential/product_documents/application_note/VRC0P_ASCII_Programming_Application_Note.pdf
  - https://applicationmarket.crestron.com/content/Help/Leviton/dimensions_3000.pdf
retrieved_at: 2026-09-02T17:56:09.442Z
last_checked_at: 2026-09-12T22:17:07.299Z

Verification Summary

verdict: verified
checked_at: 2026-09-12T22:17:07.299Z
matched_actions: 29
action_count: 29
confidence: medium
summary: "All 29 spec action units (N, ON, OFF, L, GR+ON/L/DI/BR/ST/S, S, DI, BR, ST, SE, SS, ?, UP, FI, SP, GS, PS, AP, NN, NL, DE, IN, AB, RO) appear verbatim in the source command table and prose; transport 9600 8N1 matches. (5 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "voltage/current/firmware compatibility not stated in source"
- "no settable parameter variables beyond command parameters listed in Actions"
- "no multi-step macros defined in source beyond the multi-line GR+CMD patterns documented inline"
- "voltage, current, wiring safety not stated in source. SS commands require VRC0P +3 back label and RF Installer Tool as primary."
- "firmware version compatibility, electrical ratings, exact Z-Wave command class catalog not enumerated in source."

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0