Daynivo Kiosk OS

Een Raspberry Pi als informatiescherm

Daynivo Kiosk OS maakt van een Raspberry Pi een apparaat dat maar één ding doet: na het aanzetten direct je Daynivo-scherm tonen, schermvullend, zonder bureaublad, muis of meldingen. Het herstelt zichzelf na een storing of stroomuitval en je beheert het vanaf elke computer of telefoon in hetzelfde netwerk.

Wat je nodig hebt

Raspberry Pi 3

Model B of B+. Daynivo Kiosk OS is voor dit model gemaakt en daarop getest.

Goede voeding

De officiële voeding van 5,1 V / 2,5 A. Een zwakke telefoonlader geeft haperingen.

microSD-kaart

16 GB of groter, liefst een A1-kaart van een bekend merk.

Scherm met HDMI

Een tv of monitor. De Pi zet hem zelf in de juiste resolutie.

Netwerk

Een netwerkkabel (aanbevolen) of wifi, met toegang tot internet.

Een computer

Om de SD-kaart te schrijven met Raspberry Pi Imager, en om de kiosk daarna in te stellen.

Installeren

Er zijn twee manieren. Het resultaat is hetzelfde.

A. Kant-en-klare image

De snelste weg voor een nieuwe Pi. Je hebt geen commandoregel nodig.

  1. Download het nieuwste .img.xz-bestand bij de releases.
  2. Open Raspberry Pi Imager, kies bij het besturingssysteem Eigen image gebruiken en selecteer het bestand. Kies je SD-kaart.
  3. Wil je wifi gebruiken, vul dat dan in bij OS-aanpassingen. Daar kun je ook een gebruiker en SSH instellen voor beheer op afstand. Zonder aanpassingen heeft de image geen bruikbaar wachtwoord en staat SSH uit.
  4. Schrijf de kaart, zet hem in de Pi, sluit scherm en netwerk aan en zet de stroom erop.

De eerste keer start de Pi één keer extra opnieuw, om de SD-kaart volledig in gebruik te nemen.

B. Op Raspberry Pi OS Lite

Als de Pi al Raspberry Pi OS draait, of als je liever zelf de basis legt.

  1. Schrijf met Raspberry Pi Imager Raspberry Pi OS Lite (32-bit) op de kaart. Zet in de OS-aanpassingen een gebruiker, wifi (indien nodig) en SSH aan.
  2. Start de Pi en log in via SSH, bijvoorbeeld ssh pi@raspberrypi.local.
  3. Voer deze opdracht uit:
curl -fsSL https://daynivo.nl/kiosk/install.sh | sudo bash

Het script haalt de nieuwste versie op, controleert de checksum en installeert alles wat nodig is. Dat duurt op een Pi 3 een kwartier tot een half uur. Je kunt meteen de kiosk-URL, een naam en een hostname meegeven:

curl -fsSL https://daynivo.nl/kiosk/install.sh | sudo bash -s -- \
  --url "https://…/display/hal?token=…" --name "Hal begane grond" --hostname hal-bg

Wil je eerst zien wat het script doet? Bekijk install.sh. Een Pi met de oude Daynivo-kiosk (display-kiosk.service) wordt automatisch overgenomen, inclusief de URL.

Eerste configuratie

De kiosk heeft geen standaardwachtwoord. Wie de Pi als eerste instelt, moet de setupcode kennen die op het scherm zelf staat. Zo kan niemand anders in het netwerk het apparaat overnemen.

  1. Kijk op het scherm

    Na het opstarten toont de kiosk een setupscherm met een code van acht tekens, zoals K7QD-3MXA, en het adres van de beheerpagina.

  2. Open de Kiosk Manager

    Ga op een computer of telefoon in hetzelfde netwerk naar http://kiosk.local:8080, of naar het IP-adres dat op het scherm staat.

  3. Code en wachtwoord

    Vul de setupcode in en kies een beheerderswachtwoord van minimaal tien tekens. De code werkt daarna niet meer.

  4. Klaar

    Het scherm schakelt naar de ingestelde pagina. Verander de hostname als je meerdere kiosks hebt, bijvoorbeeld in hal-bg.

Een Daynivo-scherm koppelen

  1. Log in bij Daynivo en ga naar Narrowcasting → Schermen.
  2. Maak een scherm aan, of kies een bestaand scherm, en kies de indeling, het thema en wat het scherm toont.
  3. Kopieer de kiosk-URL. Daarin zit een geheime sleutel (?token=…). Daynivo toont de volledige link maar één keer, dus kopieer hem meteen.
  4. Plak de link in de Kiosk Manager onder Kiosk → Kiosk-URL en sla op. Het scherm wisselt binnen enkele seconden, zonder herstart.

De Kiosk Manager laat de sleutel in de link nergens volledig zien: niet op het dashboard, niet in de logboeken en niet op het offlinescherm. Kwijtgeraakt of uitgelekt? Maak in Daynivo een nieuwe sleutel aan voor dat scherm en plak de nieuwe link in de kiosk. De oude werkt direct niet meer.

De kiosk werkt met elke HTTPS-pagina, dus ook met andere narrowcasting- of dashboardpagina's.

Wat de Daynivo Kiosk Manager kan

De beheerpagina van de kiosk zelf, op poort 8080. Bovenin staat op elke pagina het menu Acties: pagina herladen, Chromium herstarten, de Pi herstarten of veilig uitschakelen.

Dashboard

Of Chromium draait en de pagina bereikbaar is, het aantal herstarts, de temperatuur, het geheugen, de vrije ruimte op de SD-kaart, de netwerkverbinding en waarschuwingen over een te zwakke voeding. Ververst zichzelf elke vijf seconden.

Kiosk

  • De kiosk-URL en de naam van het apparaat.
  • Automatisch verversen: nooit, of elke minuut tot elke dag.
  • Een schermafbeelding van wat er nu op het scherm staat, handig als je er niet bij bent.
  • Het browserprofiel bewaren (zodat de offline-cache van een Daynivo-scherm een herstart overleeft) of alleen in het werkgeheugen houden.

Systeem

  • Het scherm draaien (90°, 180°, 270°) voor een staand scherm, de resolutie kiezen en alles groter of kleiner zetten.
  • Het scherm altijd aan laten, of na een ingestelde tijd laten uitgaan.
  • De hostname, en of de beheerpagina via HTTPS bereikbaar is.
  • Software-updates, zie hieronder.

Netwerk

  • Wifi-netwerken zoeken en verbinden, en het land voor de wifi-frequenties.
  • Automatisch (DHCP) of een vast IP-adres, met eigen DNS-servers.
  • Automatisch terugdraaien: na een netwerkwijziging moet je die binnen drie minuten bevestigen. Lukt dat niet, bijvoorbeeld omdat je een verkeerd adres hebt ingesteld, dan zet de kiosk de oude instellingen zelf terug. Ook als de stroom tussendoor uitvalt.

Logboek

De logboeken van de kiosk, Chromium, het netwerk, de healthcheck en het hele systeem. Bij de beheerinterface staat ook wie wanneer iets heeft ingesteld of uitgevoerd.

Het lost veel zelf op

Vastgelopen of gecrasht

Reageert de pagina niet meer, dan herlaadt de kiosk hem. Helpt dat niet, of crasht Chromium, dan start hij Chromium opnieuw.

Netwerkkabel los

Het scherm meldt duidelijk dat er geen verbinding is, met klok en datum. Zodra de verbinding terug is, verschijnt de pagina weer vanzelf.

Server even weg

Een Daynivo-scherm blijft dan zijn laatste inhoud tonen. Automatisch verversen wordt overgeslagen zolang de server niet bereikbaar is.

Stroomuitval

Na het terugkomen van de stroom start de Pi gewoon weer in het scherm. Een hardware-watchdog herstart de Pi als het systeem zelf vastloopt.

SD-kaart sparen

Logboeken en tijdelijke bestanden staan zoveel mogelijk in het werkgeheugen, zodat de SD-kaart jaren meegaat.

Geen pop-ups

Geen vertaalbalk, geen "Chromium is niet correct afgesloten", geen schermbeveiliging en geen muisaanwijzer.

Updates

In de Kiosk Manager onder Systeem → Software-updates zie je welke versie er draait en of er een nieuwere is.

  • Automatisch bijwerken: zet het vinkje aan, en de kiosk installeert een nieuwe versie 's nachts tussen 03:00 en 05:00.
  • Zelf bijwerken: met Nu controleren en Bijwerken naar … wanneer het jou uitkomt.

Een update bewaart eerst de configuratie, controleert de checksum van de download en installeert nooit een oudere versie. Je instellingen en het beheerderswachtwoord blijven staan. Het scherm is tijdens een update een paar minuten weg.

Meerdere schermen uitrollen

Voor elk scherm dezelfde image, en per scherm een klein bestand op de SD-kaart. Zet na het schrijven van de kaart een bestand voxip-config.json op de bootpartitie (de partitie die je computer ziet):

{
  "device_name": "Hal begane grond",
  "url": "https://…/display/hal?token=…",
  "hostname": "hal-bg",
  "wifi_country": "NL",
  "rotation": 0,
  "screen_always_on": true
}

Bij de eerste start neemt de kiosk deze instellingen over en hernoemt hij het bestand naar voxip-config.json.applied. Klopt er iets niet, dan wordt het .rejected en staat de reden in voxip-config.error.txt.

Wil je op afstand inloggen via SSH, zet dan ook een bestand voxip-authorized_keys met je publieke SSH-sleutel(s) op de bootpartitie. SSH gaat dan aan, en alleen met die sleutels.

Vragen en problemen

kiosk.local wordt niet gevonden

Gebruik het IP-adres dat op het setupscherm staat, of zoek de Pi op in je router. Sommige netwerken (vooral met een gastnetwerk of strikte wifi) laten .local-namen niet door.

Ik ben de setupcode kwijt

De code staat op het scherm zolang er nog geen wachtwoord is. Via SSH kun je hem ook opvragen:

sudo voxip-kiosk-ctl setup-code
Ik ben het beheerderswachtwoord vergeten

Wis het wachtwoord via SSH. Daarna verschijnt er een nieuwe setupcode op het scherm en stel je opnieuw een wachtwoord in.

sudo voxip-kiosk-ctl reset-password
Na een netwerkwijziging is de kiosk onbereikbaar

Wacht drie minuten: een niet-bevestigde wijziging wordt vanzelf teruggedraaid. Heb je de wijziging al bevestigd, zet dan een leeg bestand voxip-network-reset op de bootpartitie van de SD-kaart en start de Pi. Hij staat daarna weer op automatisch (DHCP).

Het scherm blijft zwart of toont "Geen verbinding"

Kijk in de Kiosk Manager op het dashboard wat de kiosk ziet, en in het logboek onder Kiosk-agent. Via SSH geeft sudo voxip-kiosk-ctl status een overzicht van alle onderdelen.

Kan het ook op een Raspberry Pi 4 of 5?

Daynivo Kiosk OS is gemaakt en getest voor de Raspberry Pi 3. Op nieuwere modellen is het niet getest.

Waar staat de broncode?

Daynivo Kiosk OS is openbaar: git.rothman.nl/rothman/daynivo-kiosk-os. Daar staan ook de technische documentatie en de releases.