Real-Time Attendance Display with Raspberry Pi, FileMaker (OData), Node-RED and PHP

In our CNC workshop, we wanted to build a display showing the latest badge scans from our RFID attendance system. The goal was to have a real-time view of employee check-ins and check-outs without touching the FileMaker system manually.

We created a solution using a Raspberry Pi 4 (8GB), a 7″ HDMI display, and Node-RED for live dashboard visualization. The data is read from FileMaker Server using the OData protocol, every 5 seconds.

The OData request is done directly from the Raspberry in python code. Everything was configured on the Raspberry using a VNC terminal session over Wi-Fi.

System Architecture

  • Raspberry Pi 4 – 8 GB RAM, connected via Wi-Fi
  • 7″ HDMI display mounted vertically
  • FileMaker Server with OData enabled
  • PHP 8.2 on internal Windows Server
  • Node-RED running on Raspberry Pi
  • Chromium browser in kiosk mode

How the system works

Every 5 seconds, Node-RED running on the Raspberry sends a request to the PHP script via HTTP. The script calls FileMaker Server using the OData protocol, gets the latest 7 badge records in JSON format, and sends them back to Node-RED for display on a live dashboard.

The Raspberry Pi boots automatically, starts Node-RED, and launches the dashboard in fullscreen (kiosk mode) using Chromium. All the configuration was made remotely using VNC.

OData Call via PHP

The PHP script is hosted on an internal server and acts as a proxy. It hides credentials and simplifies the connection from Raspberry. Here’s a simplified version of the code:

<?php
$url = "https://192.168.1.27/fmi/odata/v4/arduino_connect/dati_tempi?\$orderby=timestamp desc&\$top=7";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Basic " . base64_encode("odata:odata"),
    "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // For testing only

$response = curl_exec($ch);
curl_close($ch);

header('Content-Type: application/json');
echo $response;
?>

The Raspberry calls the script using a simple HTTP GET request like this:

http://192.168.1.100/odata_proxy/timbrature.php

Node-RED Flow Structure

  1. Inject node → triggers every 5 seconds
  2. HTTP Request node → calls the PHP script
  3. JSON node → parses the JSON response
  4. Function node → filters or formats the data
  5. UI Table node → displays the table on the dashboard

Node-RED is perfect for this kind of solution: it’s visual, powerful, and runs smoothly on a Raspberry Pi.

Possible Expansions

  • Alert if the same user scans twice “IN” without an “OUT”
  • Warning if two timestamps are too close together
  • Switch between dashboard views: only IN records, last 10 records, or only errors
  • Future integration with machine status data from CNCs
  • Export daily logs automatically

Technologies Used

TechnologyRole
FileMaker ServerStores data and exposes it via OData
OData v4Web protocol to access FileMaker records
PHP 8.2Handles secure OData requests via cURL
Node-REDFlow logic and live dashboard
Raspberry Pi 4Runs the frontend (Node-RED + Chromium)

Credits

  • Giulio Villani – for OData and FileMaker integration support
  • Fabio Bosisio – for help with Node-RED flows and dashboards
  • Riccardo Fiorile – for installing PHP and maintaining our Windows servers

Who I am

My name is Genesio, and I’ve been working in precision mechanics and CNC machining for over 30 years. Today, I combine mechanical skills with custom digital solutions using FileMaker, Node-RED, Raspberry Pi and Arduino.

Our Websites

Want to try this yourself?

This setup is low-cost, scalable, and easy to extend. If you have FileMaker and a Raspberry Pi, you’re already halfway there. I’m happy to share:

  • Complete PHP code
  • Node-RED JSON flow
  • Kiosk startup scripts
  • Architecture diagram (optional)

Contact me if you want to implement a similar solution or just want to discuss your project!


Tags:


Comments

One response to “Real-Time Attendance Display with Raspberry Pi, FileMaker (OData), Node-RED and PHP”

  1. Maurizio avatar
    Maurizio

    Hi, what is the filemaker’s version?
    Best regards

Leave a Reply

Your email address will not be published. Required fields are marked *