Summary

The Rako WRA232Bridge is a control bridge supporting RS-232, TCP/IP (Telnet), HTTP, and UDP protocols for controlling Rako lighting systems. All protocols share the same command structure documented in the Rako RS232 Command Summary. The bridge controls rooms, channels, scenes, and levels.

Transport

protocols:
  - serial
  - tcp
  - http
  - udp
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
addressing:
  port: 9761  # Telnet and UDP port
base_url: /rako.cgi  # HTTP GET endpoint
auth:
  type: none  # inferred: no login required for Telnet or HTTP

Traits

- powerable  # inferred: OFF command (0x00) present
- routable   # inferred: room/channel/scene routing commands present
- levelable  # inferred: level control commands present (FADE, SET_LEVEL)
- queryable  # inferred: scene cache and level cache query commands present

Actions

- id: off
  label: Off
  kind: action
  params:
    - name: room
      type: integer
      description: Room number (0 = Whole House, 1-255 = Standard, 256-1019 = Extended)
    - name: channel
      type: integer
      description: Channel number (0 = All Channels, 1-15 = Standard, 16-255 = Extended)
  protocol: udp
  command: [0x52, 0x05, room_hi, room_lo, channel, 0x00, checksum]

- id: fade_up
  label: Fade Up
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
  protocol: udp
  command: [0x52, 0x05, room_hi, room_lo, channel, 0x01, checksum]

- id: fade_down
  label: Fade Down
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
  protocol: udp
  command: [0x52, 0x05, room_hi, room_lo, channel, 0x02, checksum]

- id: set_scene
  label: Set Scene
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
    - name: scene
      type: integer
      description: Scene number (1-16 Standard, 17+ Reserved)
    - name: flags
      type: integer
      description: "0x01 = Use Default Fade Rate"
  protocol: udp
  command: [0x52, 0x07, room_hi, room_lo, channel, 0x31, flags, scene, checksum]

- id: fade
  label: Fade to Level
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
    - name: level
      type: integer
      description: Level 0-255 (0=0%, 255=100%)
    - name: flags
      type: integer
      description: "Bit 0: Fade Up(0)/Down(1), Bit 7: Use Default Fade Rate"
  protocol: udp
  command: [0x52, 0x07, room_hi, room_lo, channel, 0x32, flags, level, checksum]

- id: set_level
  label: Set Level
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
    - name: level
      type: integer
      description: Level 0-255 (0=0%, 255=100%)
    - name: flags
      type: integer
      description: "0x01 = Use Default Fade Rate"
  protocol: udp
  command: [0x52, 0x07, room_hi, room_lo, channel, 0x34, flags, level, checksum]

- id: stop
  label: Stop
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
  protocol: udp
  command: [0x52, 0x05, room_hi, room_lo, channel, 0x0F, checksum]

- id: ident
  label: Ident
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
  protocol: udp
  command: [0x52, 0x05, room_hi, room_lo, channel, 0x08, checksum]

- id: store
  label: Store
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
  protocol: udp
  command: [0x52, 0x05, room_hi, room_lo, channel, 0x0D, checksum]

- id: custom_232
  label: Custom String
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
    - name: string_id
      type: integer
      description: Custom String ID
    - name: flags
      type: integer
      description: Reserved (set to 0)
  protocol: udp
  command: [0x52, 0x07, room_hi, room_lo, channel, 0x2D, flags, string_id, checksum]

- id: holiday
  label: Holiday Mode
  kind: action
  params:
    - name: room
      type: integer
    - name: channel
      type: integer
    - name: flags
      type: integer
      description: "0x00=STOP_PLAYBACK, 0x01=START_PLAYBACK, 0x02=START_RECORD, 0x03=STOP_RECORD"
  protocol: udp
  command: [0x52, 0x06, room_hi, room_lo, channel, 0x2F, flags, checksum]

# HTTP GET equivalents
- id: http_set_scene
  label: Set Scene via HTTP
  kind: action
  params:
    - name: room
      type: integer
    - name: ch
      type: integer
      description: Channel number
    - name: sc
      type: integer
      description: Scene number (0=Off, 1-16 Standard)
  protocol: http
  example: "/rako.cgi?room=5&ch=4&sc=3"

- id: http_set_level
  label: Set Level via HTTP
  kind: action
  params:
    - name: room
      type: integer
    - name: ch
      type: integer
      description: Channel (0 = All Channels in room)
    - name: lev
      type: integer
      description: Level 0-255
  protocol: http
  example: "/rako.cgi?room=10&ch=0&lev=255"

- id: http_send_command
  label: Send Command via HTTP
  kind: action
  params:
    - name: room
      type: integer
    - name: ch
      type: integer
    - name: com
      type: integer
      description: "Command: 0=Off, 1=FadeUp, 2=FadeDown, 3-6=SC1-4, 8=Ident, 15=Stop"
    - name: event
      type: integer
      description: "run=1 required for event parameter"
  protocol: http
  example: "/rako.cgi?room=50&ch=0&com=1 (Press), /rako.cgi?room=50&ch=0&com=15 (Release)"

- id: http_trigger_event
  label: Trigger Event via HTTP
  kind: action
  params:
    - name: event
      type: integer
      description: Event number
    - name: run
      type: integer
      description: Must be 1
  protocol: http
  example: "/rako.cgi?event=2&run=1"

- id: http_custom_string
  label: Trigger Custom String via HTTP
  kind: action
  params:
    - name: string
      type: integer
      description: Custom String number
    - name: run
      type: integer
      description: Must be 1
  protocol: http
  example: "/rako.cgi?string=3&run=1"

Feedbacks

- id: command_ack
  type: string
  values: [AOK, AERROR]
  protocol: udp
  description: UDP command acknowledgement

- id: scene_cache_reply
  type: binary
  protocol: udp
  description: "Scene cache reply: 0x43 ('C') prefix, followed by bytes containing scene/room pairs. Max 32 cached items."
  example: "0x43030C1CD5 = Room 28 Scene 3"

- id: level_cache_reply
  type: binary
  protocol: udp
  description: "Level cache reply: 0x58 ('X') prefix with level data per room/channel"
  example: "0x58 04 80 49 01 ff bf... = Room 73 Channel 1,2 levels"

- id: status_broadcast
  type: binary
  protocol: udp
  description: "UDP broadcast status messages from bridge on port 9761. Format: 0x53 ('S') prefix, same structure as command packets."
  example: "0x530A000500310104000000C5 = Room 5 Channel 0 Scene 4"

- id: http_success
  type: string
  protocol: http
  description: "HTTP GET returns page containing 'Success!' - indicates message delivered to bridge, not circuit"

Variables

- id: room_level
  type: integer
  range: [0, 255]
  description: Current dimmer level for a room/channel combination
  protocol: udp
  access: get  # via level cache query (0x5121)

- id: scene_cache
  type: object
  description: Last scene set per room (up to 64 rooms cached)
  protocol: udp
  access: get
  url: http://rakobridge/scenes.htm

Events

- id: status_change
  type: broadcast
  protocol: udp
  port: 9761
  description: Bridge sends UDP broadcast on status changes (from v1.2.2)
  format: "0x53 prefix, bytes follow command packet structure with room/channel/command/data"

Macros

# Scene recall: set_scene with room, channel, scene number
# Scene off: set_scene with scene=0
# Fade to level: fade command with flags and level

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures found in source

Notes

The Rako protocol is shared across RAV232, RAV232+, and WRA-232 products. The command summary is documented in a separate document: 'Rako RS232 Command Summary'. HTTP interface documentation lists different product families - WRA-232 specifically supports the Custom String parameter for the string CGI parameter. The Telnet interface (port 9761) is used by Rasoft software and cannot be used simultaneously with Rasoft. UDP discovery uses a broadcast 'D' (0x44) packet and bridge responds with NETBIOS name and MAC address. All text over UDP is encoded in WINDOWS-1252. Scene cache is volatile (reset on bridge power up) while level per scene data is persistent (uploaded from Rasoft). CRC/checksum is required on all UDP packets.

Provenance

source_domains:
  - rakocontrols.com
  - manualmachine.com
  - scribd.com
  - wiki.london.hackspace.org.uk
source_urls:
  - https://rakocontrols.com/media/1956/accessing-the-rako-bridge-v222.pdf
  - https://rakocontrols.com/media/1315/wra232-instruction-manual.pdf
  - https://manualmachine.com/rako/wra232/2505407-user-manual/
  - https://www.scribd.com/document/830853576/accessing-the-rako-hub
  - https://wiki.london.hackspace.org.uk/view/Project:Java-Rako/Published_API
retrieved_at: 2026-05-18T10:41:50.992Z
last_checked_at: 2026-06-02T22:13:29.018Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T22:13:29.018Z
matched_actions: 16
action_count: 16
confidence: medium
summary: "All 16 spec actions traced to source (dip-safe re-verify). (3 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "HTTP interface documented for RA/RTC/WA/WTC-Bridge and APR/WRE-Bridge products but NOT explicitly confirmed for WRA-232 in this source. UNRESOLVED: Custom String parameter (string=X&run=1) documented as WRA-232 specific but unclear if HTTP is supported on WRA-232."
- "no safety warnings or interlock procedures found in source"
- "Full RS232 command protocol details not included - refer to separate Rako RS232 Command Summary document. UNRESOLVED: XML download interface (rakobridge/rako.xml) documented for RA/RTC/WA/WTC-Bridge only, not confirmed for WRA-232."

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