Machine Tracker (Serial Numbers and Version Reports)

S/N displayed on the main screen
S/N on the Settings program screen

Each Rose Engine Butler machine reports its serial number and the REB O/S version it is running every time it is updated. The reports are collected on the support manual web site, so we can see which machines are still in use, and what REB O/S version each one runs. This will be quite useful when an owner calls for support.

This page covers the whole process, from setting a machine's serial number to managing the reports on the server.

To access the on-line report, use this web link: Rose Engine Butler – Version Reports.

In short: a machine is identified by its Raspberry Pi's own hardware ID, not by its serial number. The serial number is only a label. So changing a machine's serial number does not create a second machine in the tracker - its row simply shows the new number after its next update.


How it works

  1. The serial number is set on the machine. The installer (Step 11) asks for it. Machines built before this feature are asked during their next update. It can be skipped; the machine then asks again at every update until a number is entered.
  2. Every update sends a report. After Update Rose Engine Butler (REB_Update.sh) pulls the latest files, REB_Update_Settings.py runs REB_Report_Version.py, which builds the report and sends it to the server.
  3. The machine keeps its own copy. Every report is written to a log on the machine first, whether or not it reaches the server.
  4. The server stores it. reb_report.php adds each report it receives, as one line, to reb_reports.jsonl.
  5. The tracker shows it. reb_report_view.php (the Machine Tracker) shows one row per machine - its most recent report - newest first. It asks for a user name and password.

A machine that is offline when it updates simply isn't reported that time. A failed report never stops the update. The report is not sent again later; it goes at the next update.


What is reported

Field What it is
hardware_id The Raspberry Pi's own serial number, built into the board (read from /proc/cpuinfo). Every Pi's is different, so it identifies the machine - including a home-built one - with no chance of two machines clashing. It changes only if the Pi itself is replaced (see below).
serial_number The REB serial number entered by the owner or builder, e.g. 4 for S/N 4. A label for talking to support - it doesn't have to be unique. Empty if it was never set.
version and version_date The REB O/S version and date shown at the bottom of the main panel, e.g. 1.0 beta 1.1 and 23 October 2026.
reported_at When the machine sent the report, by the machine's own clock (local time).

Nothing else is sent - no owner name, no settings, no G-code.


Files on the machine

File Purpose
/home/reuben/.config/REB/serial The machine's serial number - one line, just the number.
/home/reuben/.config/REB/report_log.jsonl Every report this machine has built, one per line, whether or not it reached the server.
RoseEngineButler/REB_Setup/REB_Set_Serial_Number.sh Asks for the serial number if none is recorded; does nothing if one already is.
RoseEngineButler/REB_Setup/REB_Report_Version.py Builds the report, logs it, and sends it to the server.

Files on the server

These are on the support web site's hosting (GoDaddy), in the same folder as the Support Manual's own pmwiki.php - the top folder of support.roseenginebutler.com. They are not in the GitHub repository; they are changed by hand through GoDaddy's File Manager (or FTP).

File Purpose
reb_report.php Receives each machine's report and adds it to reb_reports.jsonl.
reb_reports.jsonl Every report ever received, one per line, oldest first. Never edited by the programs - only added to. Back this up before editing it by hand.
reb_report_view.php The Machine Tracker page.
.htaccess Makes the Machine Tracker ask for a password, and stops anyone opening reb_reports.jsonl or .htpasswd directly in a browser.
.htpasswd The Machine Tracker's user name (REBmachines) and encrypted password.

Files starting with a dot are hidden by default in GoDaddy's File Manager - turn on Show hidden files in its settings to see .htaccess and .htpasswd.


Common tasks

Change a machine's serial number

On the machine, in a terminal (replace 5 with the new number):

echo 5 > ~/.config/REB/serial

Then either run Update Rose Engine Butler, or send a report straight away:

python3 ~/linuxcnc/configs/RoseEngineButler/REB_Setup/REB_Report_Version.py

Nothing needs to change on the server. The machine keeps the same row in the Machine Tracker, which now shows the new number. The older lines in reb_reports.jsonl keep the old number; they can be left alone (see Remove old or test reports to tidy them).

A machine's Raspberry Pi was replaced

The new Pi has a different hardware ID, so after its next update the machine appears as a new row, with the same serial number as the old one. The old row stays, showing the date of the old Pi's last report. Remove the old Pi's lines from reb_reports.jsonl (below) once you're sure it's no longer in use.

Remove old or test reports

  1. In GoDaddy's File Manager, download a copy of reb_reports.jsonl as a backup.
  2. Open it with the File Manager's editor. Each line is one report, e.g.
    {"hardware_id": "10000000abcd1234", "serial_number": "4", "version": "1.0 beta 1.1", "version_date": "23 October 2026", "reported_at": "2026-10-24 09:15:02"}
  3. Delete the lines you don't want - every line with that machine's hardware_id removes the machine from the tracker entirely. Delete whole lines only, and leave no blank lines between the others.
  4. Save, and reload the Machine Tracker to check.

A machine doesn't appear in the tracker

  • Check it has been updated since 23 October 2026 (when reporting started).
  • On the machine, run the report by hand (the command under Change a machine's serial number). It prints Version report sent to ... when it works, or a WARNING saying why not - usually no internet connection.
  • Look at the end of /home/reuben/.config/REB/report_log.jsonl to see what the machine has been sending.

Change the Machine Tracker password

Create a new .htpasswd line for user REBmachines with an htpasswd generator (or the htpasswd command on a Pi), and replace the line in .htpasswd with it. Keep the password somewhere safe - it isn't recorded anywhere else.


Privacy

The tracker holds no names or addresses - only the Pi's hardware ID, the serial number, the version and the date. Matching a serial number to an owner is done from Colvin Tools' own build records, not here. reb_reports.jsonl and .htpasswd can't be opened from a browser, and the Machine Tracker needs the password.

########## Standard Footer for all pages ##########
 

About the Rose Engine Butler System
Terms of Use

eMail comments to
ColvinTools @ Gmail [period] com -> mailto:ColvinTools [snail] Gmail [period] com