Dove compaiono i codici
Un chip è un’icona nell’angolo in basso a sinistra dello schermo, con un messaggio di una riga quando compare per la prima volta. Il Player mostra la condizione attiva di rango più alto e mantiene il chip finché la condizione persiste. Il dashboard mostra il chip accanto allo stato online dello schermo.
screenrig screen show scr_ID restituisce ciò che il Player ha segnalato:
| Membro | Contiene |
|---|---|
status | chip, l’id del chip (null quando non ne compare nessuno), il suo level e il momento in cui il Player lo ha segnalato. Assente fino al primo rapporto |
last_page_failure | page_id, code e at dell’ultima pagina che non è riuscita a diventare pronta |
manifest_upgrade | Come procede l’ultimo aggiornamento dei contenuti: state, code, attempt e retry_at |
storage, storage_shortfall | L’ultimo rapporto del Player sull’archiviazione e quanto la playlist lo supera. La carenza è presente solo finché i contenuti non rientrano nello spazio |
Un chip è l’ultimo rapporto del Player: leggilo come obsoleto finché online è false. I rapporti come player.video_unusable e player.card_failed vanno nel log del Player dello schermo:
screenrig events list --source log --screen-id scr_ID
Chip di stato
La tabella segue l’ordine di rango: quando valgono più condizioni, viene mostrata la prima. L’etichetta è il nome del chip nel dashboard.
| Chip | Causa | Correggi |
|---|---|---|
archived (Schermo archiviato) | Lo schermo è archiviato, quindi il suo vetro è scuro. Il Player conserva le sue credenziali | screenrig screen unarchive scr_ID. Il Player riprende senza una nuova associazione. Uno schermo archiviato come replaced non può essere ripristinato dall’archivio: screen delete lo rimuove |
repair_needed (Riparazione necessaria) | La chiave del dispositivo non associa più il Player al suo schermo (credential_revoked, key_retired), oppure il dispositivo non ha potuto conservare la propria identità. Il Player conserva i suoi contenuti salvati e la sua chiave | Reimposta il Player sul dispositivo: apri il suo menu operatore, scegli Impostazioni, poi Reimposta. Riceve un nuovo codice di associazione: fornisci il codice al tuo agente |
payment_required (Credito esaurito) | Il credito d’uso del progetto è esaurito, quindi i nuovi contenuti non possono raggiungere lo schermo. Dal 1° gennaio 2027 questo chip compare anche con un credito residuo pari o inferiore a zero | screenrig billing balance mostra quanto resta. Aggiungi credito d’uso, come descritto in Prezzi |
session_revoked (Connessione terminata) | La credenziale del Player è stata rifiutata o revocata, oppure il suo schermo è stato eliminato, mentre il Player conserva contenuti salvati. Continua a riprodurre quei contenuti e riprova | Verifica che lo schermo esista con screenrig screen show scr_ID. Se il chip resta, reimposta il Player nel suo menu operatore e associalo di nuovo |
verify_fail (Verifica impossibile) | Un file scaricato non ha superato il controllo di dimensione, hash o tipo, quindi il Player non lo usa e mantiene quello che ha. Il codice di aggiornamento è hash_mismatch | screenrig screen clear-cache scr_ID fa scaricare di nuovo i contenuti al Player |
storage_full (Memoria piena) | Il dispositivo non ha spazio per i contenuti che deve scaricare, quindi i nuovi contenuti non possono essere salvati | Libera spazio di archiviazione sul dispositivo o riduci la playlist. Cache e archiviazione spiega come la playlist rientra nello spazio |
decode_unplayable (Riproduzione impossibile) | Il Player non può riprodurre alcun elemento che deve mostrare, e non c’è altro sullo schermo | Video non riproducibili. Un Raspberry Pi 5 richiede video caricati con --codec hevc |
unavailable (Visualizzazione impossibile) | Il Player non ha contenuti salvati, la sua assegnazione non è stata risolta e non si applica nessuna condizione più specifica | Leggi manifest_upgrade e last_page_failure in screen show, correggi ciò che indicano, poi screenrig screen reload scr_ID |
browser_unsupported (Browser incompatibile) | Il browser che esegue il Player web è incompatibile. La riproduzione continua | Aggiorna il browser |
app_unsupported (App incompatibile) | La versione dell’app screenRIG è incompatibile. La riproduzione continua | screenrig screen update-software scr_ID dove il Player dichiara update, altrimenti aggiorna tramite il suo store o il gestore dei dispositivi |
browser_warning (Avviso browser) | Il browser che esegue il Player web è obsoleto. La riproduzione continua | Aggiorna il browser |
app_warning (Avviso app) | La versione dell’app screenRIG è obsoleta. La riproduzione continua | screenrig screen update-software scr_ID dove il Player dichiara update, altrimenti aggiorna tramite il suo store o il gestore dei dispositivi |
assignment_held (Aggiornamento rinviato) | L’ultimo aggiornamento sta riprovando o non è riuscito, oppure il rinnovo della sessione del Player ha richiesto più di 10 secondi. Il contenuto attuale continua a essere riprodotto | Leggi manifest_upgrade in screen show. Errori di pagina e di aggiornamento spiega ogni state e code |
decode_miss (Elemento saltato) | Un elemento non può essere riprodotto, quindi il Player lo salta mentre viene riprodotto altro contenuto | Video non riproducibili |
offline_playing (Riproduzione offline) | Il contenuto è sullo schermo e il Player non ha avuto alcuna connessione a screenRIG per 60 secondi o più. Riproduce i suoi contenuti salvati | Ripristina la rete del dispositivo. screen show segnala last_outage con likely_cause |
schedule_timezone (Fuso necessario) | Una pagina ha una programmazione di visibilità e lo schermo non ha un fuso orario, quindi il Player ignora la programmazione e mostra sempre la pagina | screenrig screen update scr_ID --timezone America/Los_Angeles, con il fuso orario IANA dello schermo |
credits_low (Credito basso) | Il credito d’uso residuo è maggiore di zero e inferiore a 1.000 crediti. Fino al 1° gennaio 2027 il credito residuo non è un’istruzione di spegnimento | screenrig billing balance mostra quanto resta |
content_partial (Contenuto parziale) | Viene riprodotta solo una parte della playlist: manifest_upgrade.state è partial e missing_page_count indica quante pagine sono escluse | Leggi manifest_upgrade.code: Cache e archiviazione per capacity, Errori di pagina e di aggiornamento per il resto |
paused (Pausa) | Qualcuno ha messo in pausa lo schermo sul dispositivo. Una pausa termina da sola dopo 60 minuti | Premi Play/Pausa sul telecomando (K su Windows) |
syncing (Aggiornamento) | Il Player sta scaricando, preparando o attivando nuovi contenuti, oppure rinnovando la sua sessione | Nessuno. Il chip scompare quando il contenuto è sullo schermo. Se resta, leggi manifest_upgrade.state |
Aggiornamento del Player necessario è un avviso accanto al chip, non un chip. Compare quando la versione del Player è inferiore al minimo supportato da screenRIG, e il Player continua a riprodurre i suoi contenuti salvati. Aggiorna il Player con screenrig screen update-software scr_ID dove dichiara update, altrimenti tramite il suo store o il gestore dei dispositivi.
Video non riproducibili
Un Player decodifica il video con il decoder hardware del dispositivo per il codec, il profilo e la risoluzione del file. Quando il dispositivo non può, il Player salta l’elemento: il chip è decode_miss, oppure decode_unplayable quando non c’è altro sullo schermo. Il record player.video_unusable del log del Player riporta il campo code (video_load_failed, video_play_failed, video_autoplay_blocked, video_stalled, image_load_failed, video_prepare_failed, video_first_frame_timeout o video_decode_failed) con i valori decoder, codecs, width e height misurati dal Player.
screenrig media upload ./lobby-loop.mp4 --codec hevc
screenrig media upload ./lobby-loop.mp4 --preset signage-1080p30
Un video viene caricato come H.264 per impostazione predefinita. Un Raspberry Pi 5 non ha un decoder H.264: carica ogni video per esso con --codec hevc, qualunque sia la dimensione. Un Raspberry Pi 4 riproduce 1080p, e --preset signage-1080p30 limita la dimensione. Usa hevc solo quando ogni schermo che riproduce la clip è un Player nativo. Sostituisci il media nella playlist e pubblicala di nuovo.
L’assegnazione di una playlist i cui video sono tutti H.264 a uno schermo il cui Player dichiara video.h264_unavailable viene rifiutata con invalid_request. Nei contenuti misti quel Player salta gli elementi H.264.
Errori di pagina e di aggiornamento
Una pagina che non riesce a diventare pronta viene saltata e il Player continua a riprodurre le altre pagine. Segnala l’errore, e last_page_failure.code è il codice proprio del Player. screenrig events list --type playback.page_failed --screen-id scr_ID li elenca.
| Codice | Causa | Correggi |
|---|---|---|
gstreamer_playback_error | La pipeline multimediale del Player Linux o Raspberry Pi ha fallito su un video: ha segnalato un errore, non si è avviata o non ha prodotto alcuna immagine | Video non riproducibili |
unsupported_content | La playlist contiene contenuti che il Player non può presentare, un primitivo o un tipo di media che non supporta | Vedi Supporto primitivo per piattaforma. Sostituisci il contenuto, oppure assegna la playlist a un Player che lo supporta |
manifest_upgrade.state indica come procede un aggiornamento dei contenuti:
| Stato | Significato |
|---|---|
pending | screenRIG ha nuovi contenuti per lo schermo e il Player non ne ha riferito |
downloading, preparing, activating | L’aggiornamento è in corso. Con un contenuto sullo schermo il chip è syncing |
retrying | Un passaggio non è riuscito e il Player riprova al momento indicato da retry_at. Il chip è assignment_held |
failed | L’aggiornamento si è fermato senza alcun nuovo tentativo pianificato. Il chip è assignment_held |
blocked | Lo spazio di archiviazione non consente di preparare il nuovo contenuto. Il chip è storage_full |
partial | Viene riprodotta solo una parte della playlist. Il chip è content_partial |
current | È in riproduzione il contenuto più recente |
manifest_upgrade.code indica la causa di uno stato retrying, failed, blocked o partial:
| Codice | Causa | Correggi |
|---|---|---|
download_failed | Un download di contenuti non è riuscito: l’origine dei contenuti era irraggiungibile o ha risposto con un errore | Controlla la connessione del dispositivo. Il Player riprova con un backoff, e retry_at indica quando |
hash_mismatch | Un file scaricato non ha superato il controllo di dimensione, hash o tipo | screenrig screen clear-cache scr_ID |
prepare_failed | Il Player non ha potuto preparare una pagina per la visualizzazione, oppure la pagina non era pronta in tempo | Leggi last_page_failure e correggi la pagina come indica il suo codice |
activate_failed | La prima pagina del nuovo contenuto non ha potuto essere mostrata | Leggi last_page_failure, poi screenrig screen reload scr_ID |
manifest_invalid | Il Player ha rifiutato il manifest della revisione perché non valido e mantiene l’ultimo contenuto valido. Non ritenta quella revisione | Segnalalo con l’id dello schermo tramite Contatto |
unsupported_content | Il Player ha scartato contenuti che non può presentare. Se non resta nulla di riproducibile l’aggiornamento fallisce e non viene ritentato; altrimenti è partial | Come per l’errore di pagina unsupported_content sopra |
internal | Un errore del Player non compreso nei codici sopra | screenrig screen reload scr_ID. Se il codice resta, segnalalo con l’id dello schermo |
capacity, staged, storage_full, none_fit, transition_blocked, anchor_unavailable | Il piano di archiviazione del dispositivo | Cache e archiviazione |
Cache e archiviazione
Prima di scaricare una revisione, un Player pianifica la propria archiviazione: quali file delle pagine rientrano nello spazio che può usare. Un Player nativo lascia liberi 128 MiB del proprio volume e rimane entro l’eventuale quota impostata per esso. All’avvio, un Player con meno di 512 MiB liberi mostra un messaggio con lo spazio libero; quel messaggio non è un chip.
storage.plan.fit in screen show indica come la playlist rientra nello spazio disponibile:
fit | Significato | Correggi |
|---|---|---|
fits | L’intera playlist rientra nello spazio | Nessuno |
fits_after_eviction, retention_reduced | La playlist rientra nello spazio dopo che il Player elimina i file nella cache di cui non ha più bisogno e, per retention_reduced, i suoi contenuti di riserva salvati | Nessuno. Nessuna pagina è esclusa |
partial | Alcune pagine non rientrano nello spazio e sono escluse (excluded_pages). Il resto viene riprodotto | Libera spazio di archiviazione o riduci la playlist |
transition_blocked | La pagina sempre visibile della nuova playlist, la prima pagina senza programmazione di visibilità, non può essere salvata accanto al contenuto sullo schermo. L’aggiornamento attende, il contenuto attuale continua a essere riprodotto e headroom_needed_bytes indica di quanto altro spazio ha bisogno | Libera altrettanto spazio di archiviazione o riduci la nuova playlist |
none_fit | Non si carica nulla: nessuna pagina rientra nello spazio, oppure la playlist non ha alcuna pagina sempre visibile che rientri nello spazio | Libera spazio di archiviazione oppure assegna una playlist più piccola |
manifest_upgrade.code ripete il piano: none_fit o transition_blocked per un aggiornamento blocked, capacity per un aggiornamento partial le cui pagine non rientravano nello spazio, staged per un aggiornamento partial che si sta ancora riempiendo e storage_full quando una scrittura non riesce. storage_shortfall è presente finché fit è partial, transition_blocked o none_fit.
Ogni voce di excluded_pages contiene reason:
| Motivo | Causa | Correggi |
|---|---|---|
object_exceeds_capacity | Un file da solo non rientra nello spazio che il Player può usare | Caricalo in una versione più piccola (media upload --max-edge o --preset signage-1080p30), oppure usa un dispositivo con più spazio di archiviazione |
page_exceeds_capacity | Ogni file rientra nello spazio da solo, ma i file della pagina insieme no | Metti sulla pagina meno file o file più piccoli |
capacity_excluded | La pagina è stata esclusa affinché il resto potesse rientrare nello spazio | Libera spazio di archiviazione o riduci la playlist |
descriptor_conflict | La playlist elenca lo stesso file due volte con dimensioni o tipi di contenuto diversi | Segnalalo con l’id dello schermo tramite Contatto |
not_local | Il Player ha ripristinato i contenuti salvati all’avvio senza un piano memorizzato, e i file di questa pagina non erano sul dispositivo | Porta il Player online: scarica la pagina |
anchor_unavailable | La pagina sempre visibile non è stata scaricata anche se il dispositivo ha spazio. È un download non riuscito, non una carenza | Controlla la connessione del dispositivo. Il Player riprova |
Chiedi prima di assegnare una playlist di grandi dimensioni:
screenrig screen storage-forecast scr_ID --playlist-id pl_ID
Risponde con fits, partial, none_fit o unknown, con i byte necessari alla playlist e la capacità del Player. unknown indica che lo schermo non ha mai segnalato l’archiviazione. Un rapporto più vecchio di 24 ore è contrassegnato come obsoleto. Il comando non scrive nulla. Quando compare un errore di archiviazione, la risposta contiene un avviso storage_full: libera spazio sul dispositivo che esegue il Player, poi riprova con la playlist.
Schede
Una scheda che non può essere disegnata lascia vuoto il suo rettangolo e la pagina continua a essere riprodotta. Il Player registra card.failed, e i Player web, Android e Windows segnalano player.card_failed una volta per ogni scheda in una pagina e per ogni codice, con page_id, primitive_id, manifest_revision e code. Anche una scheda i cui dati sono scaduti resta vuota: screenrig card data put --ttl 30m la rinnova.
| Codice | Causa | Correggi |
|---|---|---|
unknown-card | L’id della scheda non è nella libreria di schede del Player | Usa una scheda dal riferimento delle schede |
card-unavailable | La scheda è nella libreria, ma questa build del Player non la include, oppure include una versione maggiore diversa da quella indicata dalla pagina | Aggiorna il Player, oppure usa la versione maggiore che include |
card-error | La scheda ha generato un errore durante il disegno (Player web). I dettagli sono nella console del browser | Confronta le proprietà della scheda con la sua pagina di riferimento |
data-unavailable | Il primo documento dati della scheda non è arrivato. La scheda resta nascosta | screenrig card data put per scrivere i dati, oppure screenrig source show per controllare la sua origine dati |
data-source-missing | Una scheda fa riferimento a dati di scheda e il Player non ha alcuna origine dati per essi | Segnalalo con gli id dello schermo e della scheda tramite Contatto |
cardml-invalid | Il file di una scheda CardML non ha superato i controlli | Segnalalo con l’id della scheda tramite Contatto |
cardml-model-error, cardml-model-timeout | Il modello di una scheda CardML è andato in errore o ha superato il tempo massimo | Controlla i dati e le proprietà della scheda |
cardml-duplicate-key | Un elenco in una scheda CardML contiene due volte la stessa chiave. Conserva le righe precedenti | Assegna a ogni riga una chiave propria |
qr-too-long, wifi-too-long | Il payload del QR o i dati del Wi-Fi non entrano in un codice QR | Accorcia l’URL o il testo |
invalid-target | La data obiettivo di un conto alla rovescia non può essere interpretata | Imposta target su una data e un’ora valide |