De kassa draait bij ons in een datacentrum; je printer en je pinautomaat staan in de zaak. Daar kan die server niet bij. Dus zet je de Next Controller ertussen: een klein programma dat om werk vraagt in plaats van dat wij naar binnen bellen — geen poort open in je router, geen vast IP-adres, geen gepriegel.
Twee wegen. Kies één; verderop staat per stap wat er voor jouw weg geldt.
Achter bijna elke kassa staat al een Windows-computer. Dan hoef je niets te kopen en niets bij te plaatsen: één regel in PowerShell en het staat er.
Een Pi Zero 2 W van ongeveer twintig euro. Verbruikt bijna niets, gaat nooit in de slaapstand, en draait jaren op één geheugenkaartje.
Wat er verder nodig is, is voor beide hetzelfde: hetzelfde netwerk als je printer en je pinautomaat — een draadje is beter dan wifi als het kan. Geen extra software, geen abonnement, geen open poorten.
Ga in de kassa naar Instellingen → Bonnenprinters. Onderaan staat Next Controller met twee knoppen: Windows-pc en Raspberry Pi of Linux. Kies je weg en druk op Opdracht kopiëren.
In die opdracht staan je adres en je sleutel al ingevuld. Voor Windows ziet hij er zo uit:
iwr https://jouwzaak.kassanext.nl/controller/installeer.ps1 -OutFile installeer.ps1; powershell -ExecutionPolicy Bypass -File .\installeer.ps1 -Adres https://jouwzaak.kassanext.nl -Sleutel a1b2c3…
En voor een Pi zo:
curl -O https://jouwzaak.kassanext.nl/controller/installeer.sh \ && bash installeer.sh --adres https://jouwzaak.kassanext.nl --sleutel a1b2c3…
Windows: niets. Python hoeft er niet op te staan — de installatie haalt hem er zelf bij als hij ontbreekt.
Eén ding wél kiezen: hoe je PowerShell opent.
| Hoe je PowerShell opent | Wanneer de controller start |
|---|---|
| Rechtsklik op de Windowsknop → Terminal (Administrator) aanbevolen op een kassa |
Bij het opstarten van de computer, ook als er niemand is ingelogd. De pc gaat 's ochtends aan en het werkt — er hoeft niemand eerst in te loggen. |
| Gewoon Terminal of PowerShell | Bij het aanmelden van deze gebruiker. Werkt ook, zolang er iemand op die pc inlogt. |
Raspberry Pi: zet Raspberry Pi OS Lite (64-bit) op een kaartje met de Raspberry Pi Imager. Lite en niet de versie met bureaublad: minder om bij te werken, start in seconden. Klik in de Imager op het tandwiel en vul daar meteen in: een wachtwoord, je wifi, en SSH aan. Dan hoef je er geen scherm en toetsenbord aan te hangen.
Kaartje erin, stroom erop, en na een minuut kun je erbij:
ssh pi@raspberrypi.local
Werkt die naam niet, kijk dan in je router welk adres hij heeft gekregen. Een gewone Debian of Ubuntu werkt net zo goed — het script gebruikt systemd, en dat zit er standaard op.
Plak de opdracht uit stap 1 en druk op enter. Hij vraagt eerst wat hij nodig heeft en zet pas daarna iets neer:
192.168.1.50:20002 — leeg
laten mag, dan loopt het pinnen niet via de controller;Daarna kijkt hij of het werkelijk kan, en niet of het waarschijnlijk kan:
Klopt er iets niet, dan stopt het met één regel die zegt wát er niet klopt. Gaat het goed, dan draait de controller daarna mee met het opstarten en komt hij terug als hij omvalt. Op Windows wordt daarbij elke vijf minuten gekeken of hij nog leeft; op een Pi doet systemd dat.
Ga terug naar Instellingen → Bonnenprinters. Daar staat een lijst met je kastjes, en het nieuwe hoort erbij te staan met een groene online erachter. In die lijst staat ook op welk systeem hij draait, welke versie hij heeft, zijn adres op je eigen netwerk, en sinds wanneer hij er staat.
Geef hem daar meteen een naam met de knop Naam: "Kassa bij de deur"
leest een stuk sneller dan DESKTOP-M4KQ2A1 als er op zaterdagavond iets
stilvalt. De computernaam blijft eronder staan, want die heb je nodig als je ernaartoe
loopt.
Blijft een kastje meer dan een minuut stil, dan wordt de regel rood. Wil je op de computer zelf meekijken:
| Waar | Hoe |
|---|---|
| Windows | Taakbeheer → tabblad Details → daar staat pythonw.exe.
Of laat hem zelf zeggen wat hij ziet:python "%ProgramData%\NextController\controller.py" --zelftest |
| Raspberry Pi | sudo journalctl -u next-controller -f |
Druk daarna in de kassa bij een printer op Proefbon. Binnen een paar tellen hoort er papier uit te komen.
Zoek in het menu van je terminal het IP-adres en de poort op (bij een
CCV of Worldline staat dat onder de netwerkinstellingen; de poort is vaak 20002). Vul dat
in de kassa in bij Instellingen → Integraties → Pinautomaat, met
dienst op brug — dat is de Next Controller.
Vanaf dan gaat bij pinnen het bedrag naar de terminal en wacht de kassa. Er komt pas een bon als de betaaldienst bevestigt dat er is betaald — het scherm zegt het, maar het scherm is geen bewijs.
Tot die tijd doet de controller alsof, en volledig — zodat je de hele weg kunt proberen zonder apparaat. De centen van het bedrag bepalen de uitkomst:
| Bedrag eindigt op | Wat er gebeurt |
|---|---|
,00 t/m ,89 | de betaling lukt na een paar tellen |
,90 | geweigerd — te weinig saldo |
,91 | de klant breekt af op de terminal |
,92 | de terminal antwoordt niet meer |
Probeer die laatste een keer. Dan staat er iemand aan de toonbank en weet niemand of er is betaald — en dat is precies het geval waarvoor de kassa “onbekend of er is betaald” zegt en niet “mislukt”. Twee keer laten pinnen is duurder dan even kijken.
Vijf dingen dekken vrijwel alles af. Begin bovenaan.
| Wat je ziet | Wat het is |
|---|---|
| Een kastje staat rood op stil | Die computer staat uit, heeft geen internet, of het programma draait niet.
Kijken op Windows met schtasks /Query /TN "Next Controller", op een Pi
met sudo systemctl status next-controller. Bonnen en pinopdrachten
blijven staan tot hij terug is — er gaat niets verloren. Heb je twee kastjes, dan
zegt de lijst welke van de twee het is. |
| Er staat een kastje bij dat Onbekend kastje heet | Dat is een kastje van vóór de versie die zijn naam meestuurt. Werk je hem bij, dan meldt hij zich onder zijn echte naam en blijft de oude regel achter. Die mag weg met Uit de lijst. |
| “De kassa kent deze sleutel niet” | De sleutel is verkeerd overgenomen, of er is in de kassa een nieuwe gemaakt.
Haal de opdracht opnieuw op en voer hem nog eens uit. Een bestaande
controller.ini blijft staan, dus pas die met de hand aan of gooi hem
weg. |
| Bonnen komen er niet uit | Kijk of het adres van de printer in de kassa klopt en of de printer aan staat. Een Epson drukt zijn eigen IP-adres af als je hem aanzet met de papierknop ingedrukt. De zelftest zegt of hij die printer kan bereiken. |
| Pinnen zegt “de terminal antwoordt niet” | Het adres klopt niet, de terminal zit op een ander netwerk, of hij hangt aan een simkaart in plaats van aan de wifi. De zelftest zegt precies wat er op dat adres antwoordt en wat niet. |
Beide wegen zijn terug te draaien, en de instellingen blijven staan zodat je hem terug kunt zetten zonder alles opnieuw in te vullen.
| Waar | Hoe |
|---|---|
| Windows | powershell -ExecutionPolicy Bypass -File installeer.ps1 -Verwijderen |
| Raspberry Pi | sudo systemctl disable --now next-controller |
Hij staat in de hoek van een zaak, dus dat is een eerlijke vraag.
controller.ini is dichtgezet: op een Pi op 600, op Windows
alleen voor jou, de beheerders en het systeem. De sleutel staat erin.