RVAltCtrl can make selected RV data available to a compatible smartwatch app. The app can then show values such as temperatures, tank levels, and battery state on your watch face or in widgets.
A complication is simply a spot on a watch face that displays information other than the time. This guide uses Complicator for iPhone and Apple Watch, but other apps that can read a JSON URL work in much the same way.
Smartwatch data is not real-time. Watches and complication apps refresh periodically to conserve battery, so displayed values may be behind the live values in RVAltCtrl. Do not use a complication for time-sensitive monitoring such as live tire pressure or any safety-critical condition.
Video Walkthrough
Prefer to watch instead? Here's a video of the whole setup process.
Before You Start
You will need:
- An active RVAltCtrl Automation feature.
- A local connection to RVAltCtrl while selecting or removing data items.
- An iPhone paired with an Apple Watch. Complicator currently requires iOS 17 or later and watchOS 10 or later.
- A watch face with complication slots if you want the values directly on the face. You can use widgets instead if your face has no slots.
1. Choose Your RV Data
- Open the RVAltCtrl interface on your phone while locally connected to your device.
- Go to Settings → Smartwatch.
- Select a data item and tap Add. Repeat for each item you want to use. You can select up to 12 items and remove them at any time.
- Tap Copy Data URL for Complication Apps.
The copied URL is specific to your RVAltCtrl device. Keep it private: anyone who has it can view the data items you selected.
To check the URL, paste it into a browser. It returns the latest values as JSON, a standard format used to exchange organized data. The names shown there, such as ac_rear_temp and tank_fresh, are the fields you will select in the complication app.
Temperature values use Fahrenheit and tire pressures use psi by default. For Celsius, add ?temp_units=c to the copied URL. For Celsius and bar, add ?temp_units=c&press_units=bar.
2. Add the Data to Complicator
Create one Complicator data point for each RVAltCtrl value you want to display:
- Open Complicator on your iPhone and tap Add Data Point (or the + button).
- Select Custom API.
- Enter a short title that will fit on the watch, such as
TemporFresh. - Paste the RVAltCtrl data URL into the URL field.
- Tap Browse JSON Response, select the field you want, and tap Use. For example, select
ac_rear_tempfor the rear interior temperature ortank_freshfor the fresh-water level. - Review the display options. The defaults are a good place to start.
- Tap Test URL, confirm that the expected value appears, and tap Save.
Repeat these steps for other values. Use the same RVAltCtrl data URL each time and select a different JSON field.
3. Add Values to Your Apple Watch Face
- Open Apple's Watch app on your iPhone.
- Select a watch face from My Faces, or choose one from Face Gallery. Faces in the Data Rich category provide several complication slots.
- Scroll to Complications and tap the position you want to change.
- Find Complicator, then select the data point you created.
- Repeat for any other slots you want to use.
The selected values should appear in the watch-face preview and then on your watch. If a new Complicator data point does not appear in the list, back out, open the complication settings for another face, and then return to your preferred face and try again.
You can keep a data-rich face in your collection for camping and switch to a simpler face at other times.
4. Add Values as Widgets
Widgets are useful for less important values or when you run out of complication slots.
- From the watch face, turn the Digital Crown upward or swipe up to open the Smart Stack.
- Scroll to the bottom and tap Edit.
- Tap Add Widget, find Complicator, and select a data point.
- Repeat for any other values, then tap Done.
Android and Wear OS
The RVAltCtrl side of the setup is the same on Android: select your data under Settings → Smartwatch, copy the data URL, and use an app that can read its JSON fields. The exact watch-app steps vary. This workflow has not yet been tested with an Android watch.
These Android options support JSON or REST data:
- Complica is the closest direct equivalent. It maps fields from a JSON URL to Wear OS short-text, long-text, or ranged-value complication slots.
- KWCH Kustom Watchface Creator can read JSON from a URL and display it in a custom Wear OS watch face. This is a watch-face builder rather than a simple complication provider, so setup is more involved.
- Tasker with AutoWear can fetch and parse the URL, then send values to Wear OS complications. This is the most flexible option, but it requires building an automation.
Check app compatibility with your phone, watch, and Wear OS version before purchasing. App features and pricing can change.
Changing the Data Later
Return to Settings → Smartwatch in RVAltCtrl to add or remove data items. If you remove an item, also remove its data point from your complication app. After adding a new item, open the existing RVAltCtrl URL again in the app and select the new JSON field.
If a Value Goes Blank
If an individual sensor in your RV stops sending fresh data, or your RVAltCtrl device itself loses its connection to the RVAltCtrl server, that field in the data URL blanks out (shown as -) after a short period, rather than keep showing an increasingly stale number. A lost Internet connection at the RV, for example your campground WiFi or cell signal dropping, is a common reason RVAltCtrl itself might go quiet like this: RVAltCtrl can still be running fine, but with no way to reach the server, so every value goes blank together.
Each value has its own timeout, since some update far less often than others by nature:
- Most values, temperatures, battery, solar, shore power, rain, and tank levels, go blank after 30 to 60 seconds without a fresh update.
- Wireless (BTLE) sensors, being battery-powered and less frequent by design, get more room: about 5 minutes.
- TPMS tire pressure and temperature use a 3-minute window.
There's no separate "device offline" check. If RVAltCtrl itself goes offline, every value simply keeps aging with no new data coming in, so they all cross their own threshold and go blank together shortly after.