Dokumentation

Zeitpläne: CLI-Befehle

Den Playlist-Zeitplan eines Bildschirms setzen, ansehen, wiederherstellen, löschen, Bildschirme zeitweise übernehmen, Zeitpläne aus Tabellen importieren.

Jeder Befehl läuft wie in der CLI-Referenz beschrieben: globale Flags, JSON-Ausgabe, Beendigungscodes, Revisionen und Wiederholungen.

Zeitpläne und Übernahme

Die Kampagnen eines Bildschirms und die Zeitplaneinträge seiner Playlist sind Ebenen eines Stapels. Der Server entscheidet von oben, was jeder Bildschirm abspielt: seine Übernahme, die Kampagnen, die ihn erreichen (zuerst --priority, dann die neueste), die eigenen Zeitplaneinträge des Bildschirms der Reihe nach, die mit screen assign zugewiesene Playlist, dann die Standard-Playlist des nächsten Bildschirmordners, der eine festlegt. Die erste Ebene, die gilt, wird abgespielt. Wechsel erfolgen innerhalb von etwa einer Minute nach einer Grenze, und Player benötigen kein Update. Eine Tabelle mit Zeitplanzeilen für viele Bildschirme wird in einem Schritt importiert: siehe Zeitplan-Import.

Eine Ebene gilt, solange alle ihre Regeln gelten: from und until, wöchentliche windows, monthly-Regeln, dates, except-Daten, eine data-Bedingung und eine interaction-Bedingung. Eine monthly-Regel ist ein day des Monats (1 bis 31; ein Monat ohne diesen Tag überspringt sie) oder der Wochentag mit der Nummer nth (1 bis 4, oder -1 für den letzten) mit einem weekday; ein dates-Eintrag ist ein einzelnes date; beide akzeptieren optionale Zeiten start und end und decken sonst den ganzen Tag ab. Ein except-Datum entfernt jedes Vorkommen, das an diesem Tag beginnt, einschließlich über Nacht reichender Ausläufer, und ein über Nacht reichendes Vorkommen gehört zu dem Datum, an dem es beginnt. data ist {key, path?, equals?} und gilt, solange diese Kartendaten existieren oder dem Skalar entsprechen. interaction ist {idle_s} (5 bis 3600, Standard 60): Die Ebene wird abgespielt, solange jemand den Bildschirm per Berührung, Klick oder Taste bedient, und fällt nach idle_s Sekunden ohne Eingabe zurück, etwa als interaktive Seite über einer Werbeschleife. displays listet die Videowand-Ausgänge (1 bis 12) auf, auf denen die Ebene abgespielt wird. covers ist full (die Seite, Standard), main oder header, footer oder side, ein über die Seite gezeichneter Streifen, der eine für diese Region gemachte Playlist braucht; siehe Streifen. start ist next_item (Standard), das wartet, bis das aktuelle Element endet, oder on_time, das es zum Zeitpunkt unterbricht. Ein Player, der seinen eigenen Stapel auflöst, spielt Ebenen mit interaction, data, Streifen und displays ab; campaign explain meldet die Ebene für jeden anderen Player als off mit dem Grund stack_only (benötigt einen Player, der seinen eigenen Stapel auflöst).

screen show, screen list und die folgenden Schreibvorgänge für Zeitplan und Übernahme geben effective_playlist zurück ({id, source, entry_id?, until?}, wobei source takeover, campaign, schedule, default oder folder ist), takeover und playlist_schedule. entry_id ist die Kampagnen-ID für campaign, die Eintrags-ID für schedule und die Ordner-ID für folder. until ist der nächste Zeitpunkt, an dem die Auswahl bekanntlich geändert wird. screen show --human gibt sie in der Zeitzone des Bildschirms aus, wie in Assigned: pl_LUNCH (schedule entry lunch until 2026-08-14 15:00 America/Los_Angeles) oder Assigned: pl_LUNCH (campaign cmp_LUNCH until 2026-08-14 15:00 America/Los_Angeles) (UTC, beschriftet, wenn der Bildschirm keine Zone hat); JSON-Ausgabe behält RFC 3339-Zeitpunkte bei. Menschliche Zeitplantabellen sind mit der Zeitzone des Bildschirms beschriftet, und screen list --human fügt eine ASSIGNED-Spalte hinzu, wenn ein aufgelisteter Bildschirm etwas anderes als seine Standard-Playlist abspielt.

ProblemcodeBeendenBedeutung
invalid_request8Der Bildschirm hat keine zugewiesene Standard-Playlist (next ist screen assign), oder eine benannte Playlist kann nicht zugewiesen werden.
screen_archived5Ein archivierter Bildschirm lehnt Zeitpläne und Übernahmen ab. next ist screen unarchive.
revision_conflict6Die --expect-rev Revision war veraltet.
playlist_format_mismatch5Das Format einer Playlist passt nicht zum Bildschirm: eine Videowand-Playlist auf einem Bildschirm, dessen Videowand eine andere Form hat, oder ein Streifeneintrag (covers header, footer oder side), der auf keinem Display des Bildschirms ausgelegt ist.
feature_not_in_plan8Dem Plan fehlt die Funktion, die ein neuer Eintrag nutzt: die Änderungskontrolle für Zeitpläne bei einem neuen paused-Eintrag, Videowände bei displays, das Display 2 oder höher nennt. Preise listet die Pläne auf.
rate_limited7Zeitpläne und Übernahmeschreibvorgänge teilen sich Minutenlimits: 600 pro Organisation, 20 pro Bildschirm und 60 pro IP. Bitte warten Sie auf retry_after_seconds.

Bei einer einzelnen Bildschirm-ID geben diese Befehle den aktualisierten Bildschirm zurück und --expect-rev schützt dessen Revision. Mehrere IDs, --tag TAG oder --folder ID (jeder aktive Bildschirm in diesem Bildschirmordner und in jedem darin enthaltenen Ordner) werden als eine Flottenanfrage mit Flottenhülle und Abbruchregeln ausgeführt; jeder Bildschirm schlägt einzeln fehl, und die CLI pausiert und setzt automatisch fort, wenn das Projektbudget erschöpft ist. Unter Propose-Zugriff oder in einem Projekt, das Überprüfung für Agentenänderungen verlangt, antwortet ein Schreibvorgang auf einen Bildschirm oder auf die gesamte Flottenauswahl mit pending_review: Der Befehl ist erfolgreich (Exit 0) mit data.review und einer Warnung pending_review, data.next ist screenrig reviews show ID, und auf dem Bildschirm ändert sich nichts, bis eine Person es genehmigt; wiederholen Sie den Schreibvorgang daher nicht. --note nennt der Person, die die Änderung prüft, den Grund; siehe Überprüfungen. Bei einem Bildschirm in einem geschützten Ordner wartet der Schreibvorgang auf eine zweite genehmigende Person, bei jeder Zugriffsstufe.

screen schedule show#

Zeigen Sie den Playlist-Zeitplan eines Bildschirms und die aktuell ausgewählte Playlist an.

screen schedule show <id>
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie scr_ Bildschirm-ID.
screenrig screen schedule show scr_CAFE

data enthält entries (leer, wenn der Bildschirm keinen Zeitplan hat), updated_at und effective_playlist. Die JSON-Ausgabe kann direkt an screen schedule set --file zurückgegeben werden.

screen schedule set#

Den Playlist-Zeitplan auf einem Bildschirm oder einer Flotte ersetzen.

screen schedule set (<id>... | --tag TAG | --folder ID) --file FILE [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>...stringeines von <id>, --tag oder --folderkeineEine oder mehrere scr_ Bildschirm-IDs. Mehrere IDs laufen als eine Flottenanfrage.
--tag TAGstringeines von <id>, --tag oder --folderkeineJeder aktive Bildschirm mit diesem Tag.
--folder IDstringeines von <id>, --tag oder --folderkeineJeder aktive Bildschirm im Bildschirmordner sfd_ und in den darin enthaltenen Ordnern.
--file FILEPfadjakeineDas Zeitplandokument oder - für stdin. Das JSON von screen schedule show wird zurückgenommen.
--expect-rev REVISIONstringneinkeineNur eine Bildschirm-ID. Optionale Revisionsvoraussetzung.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig screen schedule set scr_CAFE --file dayparts.json
screenrig screen schedule set --tag Cafe --file dayparts.json
screenrig screen schedule set --folder sfd_01EXAMPLEFOLDER000000000 --file dayparts.json

Jede Playlist, die ein Zeitplan benennt, wird als Zuweisung validiert, und der Bildschirm benötigt eine zugewiesene Standard-Playlist. Die Zeiten der Einträge werden in der eigenen Zeitzone des Bildschirms gelesen. Gilt kein Eintrag, wird die zugewiesene Playlist abgespielt. Wenn eine geplante Playlist später nicht angezeigt werden kann, werden ihre Einträge übersprungen und screen.playlist_unavailable wird protokolliert.

screen schedule clear#

Den Playlist-Zeitplan von einem Bildschirm oder einer Flotte entfernen.

screen schedule clear (<id>... | --tag TAG | --folder ID) [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>...stringeines von <id>, --tag oder --folderkeineEine oder mehrere scr_ Bildschirm-IDs. Mehrere IDs laufen als eine Flottenanfrage.
--tag TAGstringeines von <id>, --tag oder --folderkeineJeder aktive Bildschirm mit diesem Tag.
--folder IDstringeines von <id>, --tag oder --folderkeineJeder aktive Bildschirm im Bildschirmordner sfd_ und in den darin enthaltenen Ordnern.
--expect-rev REVISIONstringneinkeineNur eine Bildschirm-ID. Optionale Revisionsvoraussetzung.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig screen schedule clear --tag Cafe

Danach läuft die Übernahme, sonst eine Kampagne, die gilt, sonst die zugewiesene Playlist. Ein Bildschirm ohne Zeitplan antwortet unverändert.

screen schedule preview#

Zeigen, was das Ersetzen des Playlist-Zeitplans eines Bildschirms ändern würde, ohne es auszuführen.

screen schedule preview <id> --file FILE [--calendar-from INSTANT] [--calendar-to INSTANT]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie scr_ Bildschirm-ID.
--file FILEPfadjakeineDas Zeitplandokument, wie screen schedule set es nimmt, oder - für stdin. Das JSON von screen schedule show wird zurückgenommen.
--calendar-from INSTANTstringneinjetztDie Kalender zu diesem Zeitpunkt mit Zone beginnen lassen, etwa 2026-12-01T00:00:00Z.
--calendar-to INSTANTstringneineine Woche nach dem BeginnDie Kalender zu diesem Zeitpunkt mit Zone enden lassen, höchstens 93 Tage nach dem Beginn.
screenrig screen schedule preview scr_LOBBY --file dayparts.json
screenrig screen schedule preview scr_LOBBY --file dayparts.json --calendar-from 2026-12-01T00:00:00Z --calendar-to 2027-01-01T00:00:00Z

Es wird nichts geschrieben. Die Einträge werden so geprüft, wie screen schedule set sie prüft, daher verweigert eine Vorschau, was das Setzen verweigert. data.gained und data.lost, jeweils {count, screen_ids}, sagen, ob der Bildschirm Ebenen seines Zeitplans gewinnen oder verlieren würde; ein Eintrag mit "paused": true liegt auf keinem Bildschirm, daher gewinnt man ihn mit seiner Veröffentlichung. data.calendar.before und data.calendar.after sind der Kalender des Bildschirms, wie er ist und wie er von --calendar-from bis --calendar-to wäre.

screen schedule revisions#

Die Revisionen des Playlist-Zeitplans eines Bildschirms auflisten, die neueste zuerst.

screen schedule revisions <id> [--after CURSOR]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie scr_ Bildschirm-ID.
--after CURSORstringneindie erste SeiteAb dem data.next_cursor der vorherigen Seite fortfahren.
screenrig screen schedule revisions scr_LOBBY
screenrig screen schedule revisions scr_LOBBY --after CURSOR

data.items enthält höchstens 50 Revisionen, jeweils mit revision (die Revision des Bildschirms beim Schreiben, daher haben die Nummern Lücken, wo sich der Bildschirm anders geändert hat), created_at, change, current, author, wenn bekannt, und entries, dem gesamten Zeitplan nach diesem Schreibvorgang (none bedeutet, dass der Bildschirm keinen Zeitplan hatte). change ist edited (ein Setzen, ein Löschen oder ein Zeitplanimport), restored (eine Kopie der früheren Revision, die restored_from nennt) oder baseline (der Zeitplan, den der Bildschirm zu Beginn seines Verlaufs hatte). Solange data.next_cursor ein String ist, gibt es ältere Revisionen: Führen Sie den Befehl erneut aus, mit --after darauf gesetzt. Revisionen verschwinden mit dem Löschen des Bildschirms. Lesezugriff genügt.

screen schedule restore#

Den Zeitplan einer früheren Revision auf einem Bildschirm wiederherstellen, indem er nach vorn kopiert wird.

screen schedule restore <id> --revision N [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie scr_ Bildschirm-ID.
--revision NintegerjakeineDie Revision, die nach vorn kopiert wird, wie screen schedule revisions sie nummeriert.
--expect-rev REVISIONstringneindie gerade gelesene RevisionDiese aktuelle Bildschirmrevision verlangen, nicht N. Ohne sie liest die CLI den Bildschirm unmittelbar vor dem Schreiben und sendet diese Revision; eine Änderung dazwischen ist revision_conflict (Exit 6).
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig screen schedule restore scr_LOBBY --revision 4
screenrig screen schedule restore scr_LOBBY --revision 4 --expect-rev 9

Die Einträge der Revision N werden zum Zeitplan des Bildschirms, derselbe Schreibvorgang wie screen schedule set mit diesen Einträgen (oder screen schedule clear, wenn diese Revision keine hatte), so geprüft, wie sie jetzt geprüft werden: Eine inzwischen gelöschte Playlist verweigert ihn. Unter Propose-Zugriff oder in einem Projekt, das Überprüfung für Agentenänderungen verlangt, wartet die Wiederherstellung wie das Setzen auf eine Person, und auf dem Bildschirm ändert sich nichts, bis sie sie genehmigt. Frühere Revisionen bleiben, wie sie waren.

screen takeover#

Zeigen Sie eine Playlist auf einem Bildschirm oder einer Flotte vor Kampagnen, dem Zeitplan und der Zuweisung an.

screen takeover [set] (<id>... | --tag TAG | --folder ID) --playlist-id ID [--until TIME | --for DURATION] [--reason TEXT] [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>...stringeines von <id>, --tag oder --folderkeineEine oder mehrere scr_ Bildschirm-IDs. Mehrere IDs laufen als eine Flottenanfrage.
--tag TAGstringeines von <id>, --tag oder --folderkeineJeder aktive Bildschirm mit diesem Tag.
--folder IDstringeines von <id>, --tag oder --folderkeineJeder aktive Bildschirm im Bildschirmordner sfd_ und in den darin enthaltenen Ordnern.
--playlist-id IDstringjakeineDie pl_ Playlist, die angezeigt werden soll.
--until TIMEstringneingehalten bis zur FreigabeEin strikter RFC 3339-Zeitpunkt mit Sekunden und Offset, in der Form YYYY-MM-DDTHH:MM:SSZ oder YYYY-MM-DDTHH:MM:SS-07:00, gesendet normalisiert auf UTC; strikt in der Zukunft und höchstens 7 Tage voraus. Oder none, um bis screen takeover clear zu warten.
--for DURATIONstringneingehalten bis zur Freigabe30m, 2h oder 3d, bis zu 6d23h59m, umgewandelt in eine until von der Uhr dieses Computers. 7d wird lokal abgelehnt; verwenden Sie --until für volle 7 Tage. Nicht mit --until.
--reason TEXTstringneinkeineEine Betreiber-Notiz zum Takeover und seinen Ereignissen. Gekürzt, maximal 120 Zeichen, und ohne Steuerzeichen.
--expect-rev REVISIONstringneinkeineNur eine Bildschirm-ID. Optionale Revisionsvoraussetzung.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig screen takeover scr_LOBBY --playlist-id pl_DRILL --for 30m --reason "Fire drill"
screenrig screen takeover --tag Lobby --playlist-id pl_LAUNCH --for 2h
screenrig screen takeover --folder sfd_01EXAMPLEFOLDER000000000 --playlist-id pl_LAUNCH --for 2h
screenrig screen takeover scr_A scr_B --playlist-id pl_NOTICE --until none

screen takeover ID ist die Kurzform von screen takeover set ID. Eine neue Übernahme ersetzt die vorherige, außer wenn dieselbe Playlist erneut gesendet wird, während ihre Übernahme gilt, und zwar ohne --reason oder mit demselben: Dann bleibt diese Übernahme erhalten und nur ihr Ende wird verschoben. Wenn sie endet, kehrt der Bildschirm eigenständig zu einer geltenden Kampagne, seinem Zeitplan oder seiner zugewiesenen Playlist zurück. Eine Übernahme, deren Playlist nicht angezeigt werden kann, endet. Ein erneuter --for-Lauf nach einem unklaren Fehler berechnet ein neues Ende und wird als neue Anfrage gesendet.

screen takeover clear#

Übernahme auf einem Bildschirm oder einer Flotte beenden.

screen takeover clear (<id>... | --tag TAG | --folder ID) [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>...stringeines von <id>, --tag oder --folderkeineEine oder mehrere scr_ Bildschirm-IDs. Mehrere IDs laufen als eine Flottenanfrage.
--tag TAGstringeines von <id>, --tag oder --folderkeineJeder aktive Bildschirm mit diesem Tag.
--folder IDstringeines von <id>, --tag oder --folderkeineJeder aktive Bildschirm im Bildschirmordner sfd_ und in den darin enthaltenen Ordnern.
--expect-rev REVISIONstringneinkeineNur eine Bildschirm-ID. Optionale Revisionsvoraussetzung.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig screen takeover clear --tag Lobby

Danach läuft eine Kampagne, die gilt, sonst der Zeitplan, sonst die zugewiesene Playlist. Ein Bildschirm ohne Übernahme antwortet unverändert.

Die Zeitplandatei

Ein Zeitplan listet 1 bis 32 Einträge in Prioritätsreihenfolge auf; der erste geltende Eintrag gewinnt. Ein Eintrag nennt eine playlist_id und setzt mindestens eine Regel einer Ebene: windows, monthly, dates, except, data, interaction, from oder until, und optional displays, covers, start und paused. windows hat 1 bis 16 Einträge in der Bildschirmzeitzone: days verwendet mon bis sun, und start und end sind HH:MM; beide weglassen für den ganzen Tag. Ein end um oder vor start überschreitet Mitternacht und gehört zum Starttag. monthly hat 1 bis 16 Einträge, dates und except jeweils 1 bis 100, ein except-Datum nur einmal. Der Server lehnt ein except-Datum außerhalb von from und until ab, einen dates-Eintrag, der außerhalb davon beginnt, und einen dates-Eintrag, der zugleich ein except-Datum ist. Optionale from (einschließlich) und until (ausschließlich) sind zivile Minuten wie 2026-12-24T18:00 ohne Offset; from liegt vor until. covers ist full (Standard), main, header, footer oder side, displays listet 1 bis 12 verschiedene Ausgänge auf, und start ist next_item (Standard) oder on_time, wie in den obigen Ebenenregeln. Eine id besteht aus 1 bis 64 Buchstaben, Ziffern, - oder _ und wird nur einmal verwendet; eine ausgelassene id wird zu entry_N. Ein Eintrag mit "paused": true ist ein Entwurf: Er liegt auf keinem Bildschirm-Stapel, screen schedule show markiert ihn, und der Kalender zeichnet ihn gestrichelt. Senden Sie den Zeitplan ohne paused erneut, um ihn zu veröffentlichen. Die CLI prüft diese Form vor dem Senden. Frühstücks-, Mittags- und Abendessen-Zeitfenster:

{
  "entries": [
    { "id": "breakfast", "playlist_id": "pl_BREAKFAST",
      "windows": [{ "days": ["mon", "tue", "wed", "thu", "fri"], "start": "06:00", "end": "11:00" },
                  { "days": ["sat", "sun"], "start": "08:00", "end": "12:00" }] },
    { "id": "lunch", "playlist_id": "pl_LUNCH",
      "windows": [{ "days": ["mon", "tue", "wed", "thu", "fri"], "start": "11:00", "end": "15:00" }] },
    { "id": "dinner", "playlist_id": "pl_DINNER",
      "windows": [{ "days": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"], "start": "17:00", "end": "22:00" }] }
  ]
}

Ein Menü, das abgespielt wird, solange jemand den Bildschirm bedient, über einem Brunch am ersten Sonntag, der ein Datum auslässt:

{
  "entries": [
    { "id": "browse", "playlist_id": "pl_MENU", "interaction": { "idle_s": 90 } },
    { "id": "brunch", "playlist_id": "pl_BRUNCH",
      "monthly": [{ "nth": 1, "weekday": "sun", "start": "10:00", "end": "14:00" }],
      "except": ["2026-12-06"] }
  ]
}

Ein Playlist-Zeitplan wählt zwischen Playlists; Seite visibility innerhalb einer Playlist wählt weiterhin zwischen ihren Seiten.

Zeitpläne und Übernahmeereignisse

events list und events follow drucken screen.playlist_switched (playlist_id, previous_playlist_id, source, entry_id, until), screen.takeover_started (playlist_id, until, wobei none bedeutet, bis zur Löschung gehalten, und reason), screen.takeover_updated (playlist_id, until, previous_until und reason, wobei none bedeutet, bis zur Löschung gehalten: dieselbe Übernahme mit einem neuen Ende), screen.takeover_ended (playlist_id, until, falls vorhanden, und reason expired, cleared, replaced, playlist_deleted oder playlist_unavailable) und die Warnung screen.playlist_unavailable (playlist_id, code playlist_deleted oder playlist_unavailable und die entry_ids, campaign_ids oder folder_id, die die Playlist nennen).

Das Löschen einer Playlist schlägt mit resource_conflict (Exit 5) fehl, solange ein Bildschirm, auch ein archivierter, sie zugewiesen hat, durch einen Zeitplaneintrag benannt, durch eine Übernahme gehalten oder wirksam ist, oder solange eine Kampagne oder die Standard-Playlist eines Bildschirmordners sie nennt. next verweist auf screen list.

Zeitplan-Import

schedule import liest eine Tabelle mit Zeitplanzeilen (Bildschirm, Datei, Start, Ende), prüft jede Zeile gegen das Projekt, zeigt eine Vorschau der Ebenen, die sie erzeugt, und ihrer Auswirkung auf den Kalender und wendet mit --commit alles oder nichts an. schedule template speichert eine Tabelle als Ausgangspunkt. Der Zeitplan-Import beschreibt die Spalten, Ziele, Zeiten und Zeilenfehler. Der eigene Zeitplan eines einzelnen Bildschirms ist screen schedule set, und eine Kampagne plant eine Zielgruppe.

Vorschau und Commit gehören zu Premium und höher: Ein Plan ohne Zeitplan-Import antwortet mit feature_not_in_plan (Exit 8), und die Vorlage ist in jedem Plan offen. Vorschau und Commit stehen einem auf Bildschirmordner beschränkten Aufrufer nicht zur Verfügung (outside_screen_scope, Exit 3).

schedule import#

Prüft eine Tabelle mit Zeitplanzeilen und zeigt eine Vorschau, was sie bewirkt; --commit wendet sie an.

schedule import <file> [--name NAME] [--timezone ZONE] [--code-field FIELD] [--commit]
ParameterTypErforderlichStandardNotizen
<file>PfadjakeineEine .csv- (UTF-8), .xlsx- (ihr erstes Blatt) oder .json-Tabelle oder -, um JSON-Zeilen, CSV-Text oder eine XLSX-Arbeitsmappe von der Standardeingabe zu lesen. Eine JSON-Tabelle ist ein Array von Zeilenobjekten oder {"rows": [...]}, mit Spaltennamen als Schlüsseln. Höchstens 5.000 Zeilen und 8 MiB.
--name NAMEstringneinder Dateiname ohne ErweiterungName des Imports, 1 bis 80 Zeichen. Ein erneuter Import unter demselben Namen aktualisiert die angelegten Ebenen, entfernt die Ebenen, deren Zeilen fehlen, und lässt eine identische Tabelle unverändert.
--timezone ZONEstringneindie eigene Uhr jedes BildschirmsDie IANA-Zone, etwa America/New_York, in der die Zeiten einer Zeile geschrieben sind, wenn die Zeile keine timezone-Zelle hat.
--code-field FIELDstringneinjedes FeldLiest den Bildschirmcode eines Ziels nur aus diesem Bildschirmfeld, etwa code oder room_id.
--commitbooleanneinausWendet den Import an, wenn die Vorschau gültig ist. Bei Zeilenfehlern wird nichts geschrieben.
screenrig schedule import schedule.csv
screenrig schedule import schedule.xlsx --name "Spring promos" --timezone America/Los_Angeles
screenrig schedule import schedule.csv --name "Spring promos" --commit
screenrig schedule import rows.json --code-field room_id
screenrig schedule import - --name "Spring promos" --commit

Ohne --commit wird nichts geschrieben. data ist die Vorschau: valid, fingerprint, summary (rows, rows_with_errors, levels, creates, updates, unchanged, removes, screens, playlists), rows, levels, removals und calendar, ignored_columns für eine Spalte, die nichts liest, und next, der Befehl, der committet. Zeilen, die in Inhalt, Zeiten, Priorität und Name übereinstimmen, werden zu einer Ebene: Ein Bildschirm ist ein Eintrag im eigenen Zeitplan dieses Bildschirms, und mehrere Bildschirme, ein Ordner oder ein Tag sind eine gemeinsame Ebene, eine Kampagne, die die eigenen Ebenen eines Bildschirms übertrifft.

Eine gültige Tabelle endet mit 0. Zeilen mit Fehlern enden mit 8 und data.valid false: data.rows[].errors nennt Spalte und Code jeder Zelle, nichts wird geschrieben, --commit committet nichts, und derselbe Befehl läuft erneut, sobald die Zeilen korrigiert sind.

Mit --commit sendet der Lauf den fingerprint der Vorschau und einen aus Name und Fingerprint abgeleiteten Idempotenzschlüssel, sodass ein erneuter Lauf eines unterbrochenen identischen Befehls sicher ist. data ist dann die Vorschau plus data.applied (creates, updates, unchanged, removes, screens, playlists) und data.committed true, und die Ein-Datei-Playlists, die die Dateien der Tabelle brauchen, werden zuerst angelegt. Alle Zeilen werden angewendet oder keine. Ein Projekt, das sich seit der Vorschau geändert hat, oder Zeilen, die anders gelesen werden, ergeben schedule_import_stale (Exit 5): Nichts wurde geschrieben, und derselbe Befehl zeigt erneut die Vorschau. Ein Commit, der einen Bildschirm in einem geschützten Ordner erreicht, wird vollständig mit protected_target (Exit 5) abgelehnt, und einer, der eine reservierte Kampagne aktualisiert oder löscht, antwortet mit reserved_item (Exit 3), sofern ihn nicht eine Person committet, die genehmigen darf. Die Vorschau braucht Lesezugriff, und --commit braucht Manage-Zugriff. Eine Datei, die die CLI nicht lesen kann, ist ein usage_error (Exit 2).

schedule template#

Speichert eine Tabelle mit den Spalten, die ein Zeitplan-Import liest, und drei Beispielzeilen.

schedule template [--format csv|xlsx] [--output FILE] [--overwrite]
ParameterTypErforderlichStandardNotizen
--format FORMATstringneincsvcsv oder xlsx.
--output FILEPfadfür xlsxdas CSV ausgebenSchreibt die Tabelle in diese Datei. Ohne sie wird das CSV ausgegeben, und data.content enthält es.
--overwritebooleanneinausErsetzt --output, wenn sie existiert. Dafür ist --output nötig.
screenrig schedule template
screenrig schedule template --output schedule.csv
screenrig schedule template --format xlsx --output schedule.xlsx --overwrite

Die Beispielzeilen sind ein Bildschirmcode, ein Bildschirmordner und ein Tag. Mit --output enthält data format, output, bytes und next, den Befehl schedule import für die gespeicherte Datei. Eine vorhandene, nicht leere --output-Datei schlägt mit usage_error fehl (Exit 2) und bleibt unverändert, sofern nicht --overwrite übergeben wird. Füllen Sie pro Bildschirm und Datei eine Zeile aus und führen Sie dann schedule import FILE aus, um die Vorschau zu sehen.

Weitere Befehlsgruppen