OvrC Cloud (WattBox)
The ovrc driver controls a SnapAV / Snap One WattBox through the OvrC cloud instead of over the LAN. One GEM device is one WattBox, identified by its OvrC device id. Each outlet becomes a power zone with on, off, toggle, reboot and reset, and the device carries whole-unit metering, UPS telemetry, outlet names, modes and power-on delays.
The reason to use it alongside (or instead of) the LAN wattbox driver is schedules. A WattBox's outlet schedules live in OvrC, not on the unit: the unit's own integration protocol can add a schedule but never list, edit or delete one. Through OvrC, GEM can do all of it: list, add, edit, enable, disable and delete.
Snap One publishes no OvrC API. This driver speaks the REST API the OvrC web app itself uses, verified against live units on 2026-09-21. Snap One can change it without notice; if the driver stops working after an OvrC release, that is the first thing to suspect.
Prerequisites
- The WattBox is claimed in OvrC and online. OvrC answers "Device found, but is not connected" for a unit it cannot reach, and the driver marks the GEM device disconnected until it can.
- An OvrC login that can see the location. A dedicated user for GEM is better than an integrator's personal login: OvrC ends a session after about 30 minutes without traffic and the driver signs in again, so a shared login is signed in and out all day.
- Outbound HTTPS from the GEM host to
api.ovrc.com.
Setup
- Admin → Devices → Add Device, driver ovrc. Enter the OvrC username (email) and password and save.
- Run the
list_devicescommand on the device. It lists every WattBox the login can see, with its OvrC device id, name, model, location and connection state. On a large dealer account setlocation_idfirst so only that location is searched (the search otherwise stops after 50 locations). - Paste the WattBox's device id into
ovrc_device_idand reload the device. - Zones for each outlet are created on the first successful poll, labelled with the outlet names from OvrC, under the Power subsystem.
- Run
get_schedulesto see the unit's schedules.
Device attributes
| Attribute | Type | Notes |
|---|---|---|
username | string | OvrC login (email). Required. |
password | string, secure | OvrC password. Required. |
ovrc_device_id | string | The WattBox's id in OvrC (24 hex characters). Required; list_devices finds it. |
location_id | string | Optional. Limits list_devices to one OvrC location. |
poll_rate | int (ms) | Status poll interval. Default 15000, minimum 5000. |
config_poll_rate | int (ms) | How often names, modes, delays and the schedule list are re-read. Default 300000, minimum 60000. |
api_base | string | Default https://api.ovrc.com. Only for a staging account. |
Zones
One zone per outlet, address = outlet number (1-based, as printed on the unit). Control power_default; state on / off.
If OvrC renames an outlet and the zone's label still matches the old name, the label follows. A label changed in GEM is left alone.
Attributes written
| Attribute | Notes |
|---|---|
connected | Set from every poll: false when OvrC cannot reach the unit or the cloud cannot be reached. |
connection_state | connected, cloud_connected, cloud_disconnected or disconnected (OvrC's STATE1..STATE4). |
model, firmware, mac_address, lan_address, ovrc_name, ovrc_location_id | From the OvrC device record. |
outlet_count | Outlets on the unit. |
outlet_N_state | on / off. |
outlet_N_name, outlet_N_mode, outlet_N_power_on_delay, outlet_N_mode_options | From the OvrC outlet configuration. Mode is normal/enabled, disabled or reset_only; mode_options lists what this unit accepts. |
voltage_value, current_value, power_value | Whole-unit V, A, W. Same names as the LAN driver, so dashboards work with either. |
voltage_high_value, voltage_low_value | The unit's safe-voltage window. |
auto_reboot | 1 when the unit's own ping-and-reboot is on. |
hasUPS, power_lost, battery_charge, battery_load, battery_health, est_run_time | UPS telemetry on UPS-equipped units. |
uptime | Seconds. |
led_status | The unit's LEDs, comma separated. |
schedules | json: the schedule list as get_schedules reports it. |
schedule_count | Number of schedules. |
cloud_reported_at | Timestamp OvrC put on the last status. |
Legacy-firmware units (WB-300 series) report voltage and current in tenths through the cloud, exactly as their local XML API does. The driver normalizes to real units (1210 → 121 V) on the rule that no WattBox runs above 400 V.
Commands
| Command | Args | Notes |
|---|---|---|
on / off / power_on / power_off | address | Switch the outlet. The acknowledged state is reflected immediately. |
toggle | address | Decided from the last polled state. Refused for an outlet OvrC does not report a state for, rather than guessing. |
reboot | address, delay (ms, default 5000) | Off, wait, on, timed by GEM. Blank or 0 uses the default; a negative delay is refused before the outlet is touched. |
reset | address | The unit's own power cycle, using the outlet's power-on delay. |
set_outlet_name | address, name | Rename in OvrC. Spaces are fine here, unlike the LAN protocol. |
set_power_on_delay | address, delay (s) | |
set_outlet_mode | address, mode | normal/enabled, disabled, reset_only. Rejected when the unit does not offer the mode (see outlet_N_mode_options). |
auto_reboot_on / auto_reboot_off | The unit's ping-and-reboot feature. | |
get_status | Poll now. | |
list_devices | Every WattBox the login can see. | |
get_schedules | Read the schedule list and refresh the schedules attribute. | |
add_schedule | name, action, outlets, time, days, date, enabled | See below. |
update_schedule | name, plus any of new_name, action, outlets, time, days, date, enabled | Only the fields given change. A new_name that matches another schedule is refused. |
delete_schedule | name | |
enable_schedule / disable_schedule | name | Keep the schedule, switch it off or on. |
Outlet writes (set_outlet_name, set_power_on_delay, set_outlet_mode) read the unit's full outlet configuration, patch one row and write the whole list back, which is how OvrC's own page does it.
Schedules
A schedule switches one or more outlets on, off or reset at a time of day, either recurring on chosen days of the week or once on a date. OvrC allows 16 per unit.
| Field | Values |
|---|---|
name | Any text. Names are matched case-insensitively by the other commands, so keep them unique. |
action | on, off or reset |
outlets | Outlet numbers, e.g. 1,3. Invoked on a zone, the zone's outlet is the default. |
time | HH:MM, 24-hour, in the unit's local time (OvrC's device time settings), not the GEM host's. |
days | Recurring: mon,wed,fri, full names, OvrC numbers 1–7 (1 = Sunday), or daily / weekdays / weekends. |
date | One-time: YYYY-MM-DD. Giving days makes a schedule recurring; giving date makes it one-time. |
enabled | Defaults to true. |
Examples:
add_schedule name=Sonos nightly action=reset outlets=2,5 time=03:30 days=daily
add_schedule name=Holiday off action=off outlets=1 time=22:00 date=2026-12-24
update_schedule name=Sonos nightly time=04:00 days=weekdays
disable_schedule name=Sonos nightly
delete_schedule name=Holiday off
Every write replaces the unit's whole schedule list, as the OvrC app does. The driver re-reads the list immediately before each change so an edit made in OvrC a minute earlier is carried along, but two clients editing the same unit at the same moment can still overwrite each other.
get_schedules reports each entry as {index, name, action, outlets, time, recurring, days, date, enabled}; the same list is kept in the device's schedules attribute, so a trigger or the AI assistant can read it without a command.
Alarms
| Key | Raised when |
|---|---|
ups_on_battery | A UPS-equipped unit reports input power lost. Cleared when mains returns. Same key as the LAN driver. |
Troubleshooting
| Symptom | Check |
|---|---|
ovrc login failed on every poll | Username or password rejected. Sign in at app.ovrc.com with the same login; if it demands two-factor or a terms-of-service click, the driver cannot get past it. |
ovrc device not connected and the device shows disconnected | OvrC itself cannot reach the WattBox. Check it in the OvrC app; the driver keeps polling and recovers when OvrC does. |
Commands answer unknown device id or a 404 | ovrc_device_id is not a device this login can see. Run list_devices and paste the id exactly. |
schedule write rejected by ovrc | OvrC validates every entry: outlets must exist on the unit, time is HH:MM, a recurring entry needs days, a one-time one needs a date. The message carries what OvrC complained about. |
| State lags a switch made elsewhere | Expected: state is polled every poll_rate. For sub-second state use the LAN wattbox driver. |
Compared with the LAN wattbox driver
wattbox (LAN) | ovrc (cloud) | |
|---|---|---|
| Transport | tcp/23 integration protocol or local HTTP | HTTPS to api.ovrc.com |
| State latency | ~3 s poll, local | ~15 s poll, cloud |
| Works without internet | Yes | No |
| Schedules | Detect fires from the debug log; add only | List, add, edit, enable, disable, delete |
| Per-outlet metering | On metered models | Whole unit only (as the OvrC status reports it) |
Both write the same attribute names, so a site can run both against one unit: the LAN driver for fast state and metering, the cloud driver for schedules.
Related
- WattBox PDU — the LAN driver for the same unit: faster state, per-outlet metering, schedule fire detection.
- Devices — adding the device and running
list_deviceson it. - Zones — the auto-created outlet zones and their labels.
- Alarms — giving the
ups_on_batterybuilt-in recipients. - Macros — calling the schedule commands from automation.