@@ -114,9 +114,11 @@ the screen device, or play.DOMAIN when `doctor` reports another environment's
114114api.DOMAIN); no USB or ADB. ` screenrig screen pair "ABC 234" ` , then
115115` screen show SCREEN_ID ` until ` state ` is ` active ` and ` online ` is true. Read
116116` observation.surfaces[] ` for size and orientation. Tag each screen right after
117- pairing (` screen tag SCREEN_ID --set Lobby,Floor2 ` ); tags select fleets and are
118- not authorization. Displays run by a device manager use ` fleet-links create `
119- instead of per-screen codes: its URL goes in a kiosk browser, in Android or
117+ pairing (` screen tag SCREEN_ID --set Lobby,Floor2 ` ) and, for a large estate,
118+ file it in a folder (` screen move SCREEN_ID --folder ID ` ); tags and folders
119+ select fleets and are not authorization. Displays run by a device manager use
120+ ` fleet-links create ` instead of per-screen codes: its URL goes in a kiosk
121+ browser, in Android or
120122Apple managed app configuration as ` fleet_link ` (` asset_id ` names the screen),
121123or in ` /etc/screenrig/fleet-link ` on Linux; ` --expires-at ` ends it. Its URL
122124creates screens, so give it only to the person who configures the devices. A
@@ -224,13 +226,30 @@ Downloads are free. On Standard the first 1 GB stored is free and a project with
224226no credit cannot store more (` payment_required ` ), so delete unused media instead
225227of piling it up.
226228
227- ** Fleets.** ` screen assign|reload|toast|tag ` take several IDs or ` --tag TAG ` .
228- The answer stays ` ok: true ` ; read ` data.results[] ` ( ` fleet_partial_failure ` ).
229- Rerun an interrupted command unchanged; after a partial failure retry only the
230- failed IDs. For a fleet publish, ` playlist create FILE ` once, then
231- ` screen assign --tag TAG --playlist-id ID ` . Verify with
229+ ** Fleets.** ` screen assign|reload|toast|tag ` take several IDs, ` --tag TAG ` or
230+ ` --folder ID ` . The answer stays ` ok: true ` ; read ` data.results[] `
231+ ( ` fleet_partial_failure ` ). Rerun an interrupted command unchanged; after a
232+ partial failure retry only the failed IDs. For a fleet publish, `playlist create
233+ FILE ` once, then ` screen assign --tag TAG --playlist-id ID`. Verify with
232234` screen screenshot --tag TAG --output DIR ` .
233235
236+ ** Screen folders.** A folder says where a screen is, one place per screen
237+ (property, building, level, zone); a tag marks a group that cuts across places
238+ (` overhead ` , ` menu-board ` ). Use a folder for "everything in this building", a
239+ tag for "every menu board", or both:
240+ ` --audience '{"all":[{"folder":"sfd_ID"},{"tag":"overhead"}]}' ` .
241+ ` screen folder create --name NAME [--parent ID] [--default-playlist-id ID] ` ,
242+ ` list ` , ` show ` , ` update ` and ` delete ` build the tree, `screen move ID...
243+ --folder ID|--root` files screens and folders ( ` scr_ ` and ` sfd_ ` IDs mixed), and
244+ ` screen list --folder ID|root ` lists one folder's own screens. ` --folder ID ` on a
245+ fleet command or ` campaign create|update ` reaches the folder and every folder
246+ inside it. A folder's default playlist plays on its screens with no playlist of
247+ their own (` effective_playlist.source ` is ` folder ` ). A move or re-parent
248+ re-resolves the screens within about 15 seconds, and the answer's ` levels ` lists
249+ the campaigns and folder defaults they gain or lose: tell the user. Deleting a
250+ folder moves its contents up and is refused while a campaign names it. Folders
251+ nest 10 deep, 1,000 to a project; writes need Manage access.
252+
234253** Per-screen values.** One playlist shows each screen's own details. Set them
235254once per screen: `screen update SCREEN_ID --field store_number=0142 --field
236255region=north --location 46.8772,-96.7898 --location-name Fargo`. Card params
@@ -242,12 +261,13 @@ region=north` or `--near LAT,LON,KM` finds screens.
242261
243262** Campaigns, schedules and takeover.** A screen plays its takeover, else the
244263first campaign that holds, else the first matching schedule entry, else its
245- default playlist. For content across screens (a promotion at every ` north `
246- store, weekday lunch menus) create one campaign, not per-screen schedules:
247- `campaign create --name Lunch --playlist-id ID --tag north --window
248- mon-fri@11:00-14:00`. Screens that join its audience later get it too. It needs
249- each screen's default playlist and, with ` --from ` , ` --until ` or ` --window ` , its
250- timezone (` screen set-timezone ` ). ` campaign screens ID ` shows every screen's
264+ own default playlist, else its nearest folder's default. For content across
265+ screens (a promotion at every ` north ` store, weekday lunch menus) create one
266+ campaign, not per-screen schedules: `campaign create --name Lunch --playlist-id
267+ ID --tag north --window mon-fri@11:00-14:00` ( ` --folder ID` for a folder).
268+ Screens that join its audience later get it too. It needs each screen's default
269+ playlist and, with ` --from ` , ` --until ` or ` --window ` , its timezone
270+ (` screen set-timezone ` ). ` campaign screens ID ` shows every screen's
251271standing and ` campaign explain SCREEN_ID ` says why one does not play it;
252272with ` --at TIME ` it says what will play then, and ` --to TIME ` lists the
253273switches: check a plan before its date.
0 commit comments