session.close
- Command
session.close- Area
- session (
session) - Profile
- patron display
- Response
{"state":"farewell"}or{"state":"idle"}
Business is finished: the display says goodbye and afterwards returns to the idle screen. The goodbye is the last thing a patron looks at – which is why this command carries the details they are meant to take home with them.
Request#
{"v":1,"cmd":"session.close",
"delay":1,"seconds":10,
"farewell":{"note":"The receipt has been sent to b***[at]example.org."},
"dates":{"due_next":"2026-08-29","next_open":"2026-08-18"},
"event":{"from":"2026-10-31T18:00:00+01:00","title":"Reading night",
"note":"Free entry, no booking required."}}
| Field | Required | Content |
|---|---|---|
delay |
no | seconds until the goodbye begins; default 0 |
seconds |
no | how long the goodbye is shown; default: the display's own setting |
farewell.note |
no | extra line beneath the greeting |
dates.due_next |
no | this person's next due date |
dates.next_open |
no | the library's next opening day |
event.from, event.to |
no | when an event takes place |
event.title, event.note |
no | its name and an addition |
The greeting itself ("Goodbye") is worded by the display. The controlling program supplies only what the display cannot know.
The delay period#
delay covers a case that occurs constantly at the desk: business counts as
finished, and immediately afterwards something is charged after all.
While the period runs, any session command cancels the goodbye – the display stays with the same person without a farewell having flashed up in between. One second is usually enough.
Response#
{"v":1,"ok":true,"result":{"state":"farewell","delay":1}}
With delay: 0 and an immediate change, the display reports the state it is in
afterwards.
Which command when#
| If … | then |
|---|---|
| business is finished | session.close |
| the workplace is left unattended | idle.show |
| the controlling program is being shut down | lifecycle.shutdown |