Functionele omschrijving
Beheer > Integraties > Evoko Home

Wat is Evoko Home?

Evoko Home is het beheerplatform achter de Evoko Liso room-displays — de touchscreens naast een vergaderzaal die tonen of de zaal vrij of bezet is en waarop je ter plekke kunt boeken. i-Reserve koppelt met Evoko Home om reserveringen bidirectioneel te synchroniseren: reserveringen uit i-Reserve verschijnen op het juiste display, en boekingen die iemand op een display maakt komen terug als reservering in i-Reserve. Functioneel vergelijkbaar met de Outlook- en Google Calendar-koppeling, maar voor de room-displays op locatie.

Evoko Home-koppeling in het kort i-Reserve Reserveringen & status Reservering blijft leidend Evoko Home Liso room-displays Vergaderzalen op locatie 1. Outbound: reservering → display (aanmaken / bijwerken / verwijderen) Transport: DDP over WebSocket (wss) 2. Inbound: display-boeking → reservering (poll + diff) Koppeling per ruimte via mapping: i-Reserve-object ↔ Evoko roomId (allRooms) Inbound is een poll elke paar minuten (Model B), geen realtime push

Hoe de koppeling werkt

De koppeling werkt in twee richtingen, gekoppeld per ruimte:

  1. Outbound (i-Reserve → display). Een i-Reserve-object (product) is in de mapping gekoppeld aan een specifieke Evoko-ruimte. Zodra een reservering een ingestelde status bereikt, stuurt i-Reserve de boeking naar die ruimte (aanmaken). Bij een andere status wordt de boeking weer van het display verwijderd. Bijwerken en inchecken (bevestigen) verlopen op dezelfde manier.
  2. Inbound (display → i-Reserve). Boekt iemand rechtstreeks op een display, dan pikt i-Reserve dat op via een poll: elke paar minuten vraagt i-Reserve de actuele stand van alle boekingen op en vergelijkt die met wat het zelf kent. Een boeking die wel op het display staat maar niet bij ons, wordt als reservering aangemaakt; een boeking die verdwenen is van het display wordt bij ons geannuleerd.

Techniek: DDP over WebSocket

Evoko Home biedt geen REST-API en geen webhooks. De communicatie loopt via DDP (het JSON-berichtenprotocol van Meteor) over een WebSocket-verbinding (wss://). i-Reserve opent een uitgaande verbinding naar de Evoko Home-server, logt in en vuurt de benodigde commando’s af. Er draait geen extra runtime of daemon; de inbound-kant is een kortlopende poll-taak, geen permanent open verbinding.

  • Outbound-commando’s: createBooking, updateEvent, deleteEvent, confirmMeeting (inchecken).
  • Inbound-query: allBookings (momentopname van alle boekingen) en allRooms (alle ruimtes met hun roomId’s, nodig voor de mapping).

Authenticatie

i-Reserve logt in met een integratie-gebruiker (standaard defaultDevIntegrationUser) en een group token. Dat token is het “Default API Token” onder Global Settings in Evoko Home en fungeert als wachtwoord. De verbinding is versleuteld (wss); een sessie blijft lang geldig en i-Reserve logt per synchronisatie opnieuw in.

Ruimte-mapping

De kern van de koppeling is de mapping: elk i-Reserve-object (product) wordt gekoppeld aan een Evoko roomId. Die ruimtelijst haalt i-Reserve live op met allRooms (knop “Ruimtelijst verversen”). Alleen gemapte ruimtes worden gesynchroniseerd; boekingen op niet-gekoppelde ruimtes worden genegeerd.

Betaalde ruimtes

Een boeking op een display omzeilt de normale betaalflow van i-Reserve. Voor betaalde ruimtes is daarom instelbaar hoe inbound-boekingen worden behandeld (het beleid betaalde ruimtes): alleen outbound synchroniseren, inbound weigeren, of toestaan. De veiligste keuze is de standaard, zodat er geen ongewenste gratis boeking op een betaalde zaal ontstaat. Geef inbound-reserveringen bovendien een niet-afrekenende status.

Beperkingen / aandachtspunten

  • Poll-latency. Een display-boeking is bij ons zichtbaar na maximaal één poll-interval (instelbaar, doorgaans 1–2 minuten). Op het display zelf staat de boeking uiteraard direct.
  • 7-dagen-venster. De boekingen-collectie van Evoko synct doorgaans 7 dagen vooruit; de inbound-horizon is daarmee ook ~7 dagen.
  • Kwartieren. Evoko accepteert eindtijden alleen op :00/:15/:30/:45; i-Reserve rondt richting Evoko naar buiten af.
  • PIN. Staat op de ruimtes PIN-authenticatie aan, dan vereisen wijzigings-commando’s een PIN (anders PinIsRequired).
  • Certificaat. Poort 3002 draait standaard met een self-signed Evoko-certificaat; TLS-verificatie staat dan uit (advies: een geldig publiek certificaat installeren).