Skip to content

feat(place/remote_setup): set up devices from a phone - #651

Open
MrYuion wants to merge 3 commits into
masterfrom
feat/place-remote-setup
Open

MrYuion wants to merge 3 commits into
masterfrom
feat/place-remote-setup

Conversation

@MrYuion

@MrYuion MrYuion commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Setting up a booking panel, control panel or signage display means typing a system ID on the device. PlaceOS/user-interfaces#718 adds a QR code to the setup screen, so a person can pick a system on a phone instead. The apps need a RemoteSetup driver to pass changes between the phone and the device. This PR adds that driver.

How it works

  • A device on its setup screen calls register, then every 15 minutes. The driver shows it in the devices binding.
  • The setup flow calls configure. The driver puts the command in the device_<id> binding and returns its ID. The device applies it and calls complete, and the driver records the new config.
  • A device that is set up also applies configure commands, so the setup flow can change its system. The device does not have to be in devices. complete adds it, using the app that the device sends.
  • To clear a device that is set up, the setup flow calls:
    • clear(device_id), which adds the ID to clear_list. The ID stays until the device registers again.
    • clear_system(app, system_id), which adds an entry to clear_systems. Devices of that app that show that system clear.
  • configure, clear and clear_system need Support access. Any signed-in device can call register and complete.
  • devices, pending commands, clear_list and clear_systems each keep 1,000 entries at most, and the oldest go first.
  • Stale data is removed every minute. Devices and clear_list IDs go after 7 days (device_ttl_hours). Commands and clear_systems entries go after 15 minutes (command_ttl_minutes).
  • Changes to devices are sent at most once per second. Check-ins that only update last_seen are sent once per minute.

Devices, commands and clears are not kept across driver restarts. Devices on their setup screen register again within 15 minutes.

Testing

The spec covers register, bad input, configure through to complete (also for a device that did not register), clearing by ID and by system, and stale removal. It passes in the harness.

Created with Claude Opus 5.5 in Claude Code (T3 Code).

🤖 Generated with Claude Code

Add a RemoteSetup logic driver that passes setup commands from the
Concierge and Signage Manager setup flow to Booking Panel, Control and
Signage devices. Implements the interface in docs/remote-setup.md of
PlaceOS/user-interfaces.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MrYuion
MrYuion requested a review from stakach November 13, 2026 00:10
MrYuion and others added 2 commits November 13, 2026 11:35
Match the updated interface in PlaceOS/user-interfaces#718:

- `register` takes no config and removes the device from `clear_list`
- `device_<id>` holds configure commands only
- `clear` adds the device to `clear_list`, also if it is not registered
- add `clear_system` and the `clear_systems` binding
- keep 1,000 entries maximum in each list

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Match PlaceOS/user-interfaces#718: a device that is set up also applies
configure commands, so the setup flow can change its system.

- `configure` does not need the device in `devices`
- `complete` takes the device app and adds a device that is not listed
- keep 1,000 pending commands maximum. Removing a device keeps its command

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant