Skip to main content
Help center
Browse topics

Doors & devices: lights, doors and heating

Switch lights, heating and door locks on and off automatically around bookings, issue door codes, and connect controllers through the device API.

How-toChecked against the app on 6 November 2026

Doors & devices connects Nola to the devices in your venue. Court lights come on shortly before a booking starts, heating runs only when a room is used, and each customer gets a door code that works only around their own booking.

How it works

You add devices (a light, a door lock, a heater) and rules that tie a device to bookings. Every minute, Nola works out whether each device should be on or off and sends the command when the state changes. A device without a rule never switches: the device list warns you with No rule yet.

The panel at the top of the page explains this in three steps and lists the common setups as examples: court or room lights, heating or ventilation, a door code for each booking, and shared lights such as a corridor. It is open until you add your first device; after that, click How it works to open it again. Further down the page come Zones and doors and Door agents for member door access, and at the bottom, folded away, Advanced: connect your own controller with the API key and the device API.

Set up with the guide

The quickest way to connect a device is the setup guide. It creates the device and its rule for you.

  1. Click Start setup guide, or Set up next to one of the common setups.
  2. Pick what you want to switch: Court or room lights, Heating or ventilation, Door code for each booking or Shared lights.
  3. Pick how Nola reaches it (Home Assistant, Shelly, Sonoff or Generic webhook) and fill in the connection fields. Each field shows an example and where to find the value.
  4. Pick the courts or rooms whose bookings switch it, or Every booking at the venue. For a door code, these are the bookings that get a code.
  5. Set how many minutes before and after a booking it switches. Each setup suggests a timing: lights 10 minutes before and 5 after, heating 30 before, door codes 15 before and 15 after, shared lights 5 and 5. Tick Also during maintenance blocks if it should also switch then.
  6. Check the summary in plain words, change the Device name if you like, and click Create.
  7. Click Test on and Test off to check that Nola can reach the device.

You can change the device and its rule afterwards, as described below.

Set up with AI

With the AI Copilot module on, click Set up with AI (or Not sure? Ask the AI Copilot in the guide). The Copilot opens with a request to help you set up lights, heating and doors. Send it, and the Copilot looks at the devices and rules you already have, asks what hardware you use and tells you what to pick in the guide. It never needs your access tokens: enter those only in the guide or the device sheet, never in the chat. See AI Copilot. The Live status board at the top shows each resource with rules as On or Off and when the next change happens. Devices that follow several resources, every booking at the venue or staffed hours get their own row, under the device's name.

Add a device

  1. Under Devices, click Add device. A sheet opens.
  2. Enter a Device name such as "Court 1 lights".
  3. Pick the Device kind: Light, Door / PIN, Heating or Generic. The line under it says what each is for.
  4. Pick the Device adapter, how Nola talks to it, and fill in the connection fields. Each field shows an example and where to find the value:
AdapterWhat to enter
Home AssistantHome Assistant address, Entity ID (for example switch.court_1_light, found under Settings → Devices & services → Entities in Home Assistant) and a Long-lived access token (your Home Assistant profile → Security)
Shelly or SonoffRelay address, Channel (0 when left empty) and an optional Auth token
Generic webhookAn Address to turn on, an Address to turn off and an optional Auth token

Every URL must be a public https:// address. Plain http:// and addresses on a private network (such as 192.168.x.x or homeassistant.local) are refused, so a controller on your local network needs a public https address, for example through Home Assistant Cloud or a reverse proxy.

  1. Under Switches with, choose what the device follows:
OptionWhat happens
Bookings on one resourcePick the Resource. On during bookings on it, as before.
Bookings on several resourcesPick the Resources. On while any of them has a booking.
Every booking at the venueOn while any resource has a booking. Good for corridor and shop lights.
Nothing (by hand or a door)Follows no bookings. Switch it by hand, or use it as a door relay.
  1. If you have door access zones, you can also pick a zone under Also on while staff are on site. The device is then on during that zone's staffed hours too, for example to keep the entrance door unlocked or the entrance lights on. See Door access for members.
  2. Click Add device at the bottom of the sheet. The sheet closes and the device shows in the list. If something is wrong, the error shows in the sheet.

With several resources or the whole venue, the rule's minutes apply to each booking. With -5 and 5, a corridor light comes on 5 minutes before the first booking on any of its courts and goes off 5 minutes after the last one.

Nola stores the token encrypted and never shows it again, not even to you. To change a device, click Edit on it. Leave the token empty to keep the saved one, or enter a new token to replace it. The device list shows under each device what it follows.

Use Test on and Test off to check the connection before you rely on it. Each device shows its last known state. Disable pauses a device without deleting it.

Add a rule

  1. Under Rules, click Add rule. A sheet opens.
  2. Pick the Device and a Resource, or leave All resources.
  3. Set Start offset (minutes) and End offset (minutes). A start offset of -15 turns the device on 15 minutes before the booking; an end offset of 15 keeps it on 15 minutes after. Left empty, they are -15 and 15.
  4. Choose what it Applies to: Bookings only, Maintenance blocks only or Bookings + maintenance. Maintenance blocks are the time blocks you add under Services → Hours.
  5. Click Add rule at the bottom of the sheet.

The list shows each rule in words, for example On 10 min before, off 5 min after · bookings.

Door codes

When a booking is made on a resource that has a rule with a Door / PIN device, Nola issues a door code for it. The code is valid from the start offset before the booking until the end offset after it. If the booking is cancelled, the code stops working; if it is extended, the code lasts longer too.

Customers see their code on the booking in their account. You can also add it to confirmation messages with the {{doorCode}} placeholder under Settings → Notifications.

Override a device by hand

Under Manual override, click Switch by hand. In the sheet, pick a Resource or device: a resource switches all its devices, a device switches only that one. A device override wins over everything else. Choose Force ON or Force OFF, set For how many minutes (up to 24 hours; 60 when left empty) and an optional reason, then click Apply override. When the time runs out, the rules take over again. Active overrides are listed with a Clear button. The Event log shows every switch, code and error.

Connect a controller through the API

If your controller should ask Nola instead of being called by Nola, open Advanced: connect your own controller at the bottom of the page and click Generate API key under Home Assistant polling. Copy the key straight away: Nola shows it only once and stores only a scrambled copy that cannot be turned back into the key. Later the page shows just its last four characters. Right after you generate it, the Device API section lists the endpoints with your key filled in; after that, the examples show YOUR_API_KEY in its place:

  • /access/devices lists devices and their resource ids.
  • /access/occupancy says whether a resource should be on right now.
  • /access/schedule returns on and off windows for the next hours, including staffed hours.

For a device that follows several resources, the whole venue or staffed hours, send deviceId instead of resourceId to occupancy and schedule. The schedule preview on the page also lets you pick a resource or a device.

  • /access/codes/current returns the door code valid right now.

Send the key in an Authorization: Bearer <key> header, as the curl examples and the headers: block in the Home Assistant example on the page show. The old ?key= address parameter no longer works, because addresses end up in logs: a controller that still sends it gets an error until you move the key to the header.

Poll occupancy every 30 to 60 seconds, or fetch the schedule once an hour. Regenerate API key replaces the key, so update your controller afterwards. If you lose the key, regenerate it: nobody, Nola support included, can read it back.

Still stuck?

Ask the AI Copilot inside Nola, or send a request to the Nola team. A person answers within one working day.