Skip to main content

Rollease Automate Pulse 2

Controls Rollease Acmeda Automate motorized shades through the Pulse Hub 2 over its on-LAN WebSocket RPC API. Rollease Automate is the motor platform behind a large number of rebadged shade brands, so this driver covers a wide swath of residential and commercial roller/roman/cellular shade installs.

Each shade motor (a "roller") the hub reports becomes a GEM zone with discrete position control and two-way feedback (position, battery token, signal, online state). Once the hub is paired in the app, no cloud connection is used.

Prerequisites

  • Pair the hub in the Automate Pulse 2 mobile app first, over Wi-Fi with internet access. The LAN API does not answer until the hub is commissioned.
  • Add and name each shade in the app.
  • Give the hub a reserved / static IP so its address is stable.
warning

Do not connect the hub to Ethernet before pairing. Rollease's own guidance is that pairing must happen over Wi-Fi; cabling first makes commissioning fail. After pairing, wired or Wi-Fi both work.

Setup steps

  1. In Admin → Devices, create a device with driver rollease_automate_pulse2.
  2. Set the required attribute:
    • Hub IP Address — the LAN IP of the Pulse 2 hub. Leave Port at 443.
  3. Save. The driver opens a secure WebSocket to the hub and requests the current shade shadow.
  4. Run the get_devices command to list the roller ids the hub reports.
  5. Create one GEM zone per shade with Address = the roller id from get_devices, and give the zone a friendly name.

Attribute reference

Device attributes

AttributeRequiredDefaultDescription
ipyesLAN IP of the Pulse 2 hub.
portno443Secure WebSocket port.
status_intervalno30000Milliseconds between shadow refreshes; also keeps the socket alive.

Zone address

The zone Address is the roller id the hub assigns each motor, exactly as get_devices reports it. Friendly names configured in the app are served over a separate, undocumented port and are not read by this driver — name the GEM zones yourself.

Commands

CommandArgsEffect
openaddressFully open the shade.
closeaddressFully close the shade.
stopaddressStop a moving shade.
set_leveladdress, levelMove to a position, GEM 0100 where 100 is fully open.
get_devicesList the roller ids the hub currently reports.
get_statusReturn the last reported state for every known shade.

Position model

The Pulse 2 hub speaks a close percent: movePercent / mp where 0 = fully open and 100 = fully closed. GEM shades use an open level (100 = fully open), so the driver inverts between the two:

  • Sending set_level = L transmits movePercent = 100 − L.
  • A reported mp becomes zone level = 100 − mp.
  • open sends movePercent: 0, close sends movePercent: 100, stop sends stopShade: true.

This keeps open / close / set_level behaving exactly like every other GEM shade driver.

Telemetry

On each shadow the driver reflects, per shade:

Zone attributeSource fieldNotes
levelmpInverted to an open percentage (0–100).
statempopen when level > 0, else closed.
battery_statusvoThe hub's raw voltage/type token, surfaced verbatim.
signalrsRadio signal strength as reported.
zone connectionolOnline flag drives the zone's connected state.

Protocol notes

The connection self-heals: if the socket drops, the driver reconnects with capped backoff (5 s → 60 s) and re-requests the shadow so position state is reconciled.

Known limitations

  • No friendly names. Shade names entered in the app are read over a separate undocumented port that this driver does not implement. Zones are identified by roller id.
  • Battery token is raw. The vo field combines voltage and motor-type information in a hub-specific encoding; it is surfaced verbatim as battery_status rather than decoded into a percentage.
  • Pulse 2 only. The original Pulse (v1) hub uses a different protocol and is not supported by this driver.
  • Hub-mediated. All control goes through the hub; motors are not addressed directly.

Troubleshooting

SymptomCheck
Never connects / immediate closeHub not paired yet (commission it in the app over Wi-Fi first), wrong IP, or a firewall between GEM and the hub.
Connects but get_devices is emptyThe hub has no shades commissioned, or the first shadow hasn't arrived — wait a few seconds and retry.
Shade opens when you meant closeConfirm you are sending GEM levels (100 = open). The driver already inverts the hub's close-percent; do not pre-invert.
not connected returned from a commandThe WebSocket is down and reconnecting. Check the log for rollease pulse2 socket closed / reconnecting.
Position lags realityLower status_interval for more frequent shadow refreshes.