View Categories

Automatic iTrixx JSON to CSV Logger – Windows Setup Guide

This guide explains how to automatically fetch data from your iTrixx device every hour and append it to a CSV file on a Windows computer. No advanced technical skills required.

Supported Devices

ModelData URL example*
iTrixx-WFMNhttp://192.168.1.50
iTrixx-Ultra-NHMhttp://192.168.1.50:30000

*Replace the example IP with your device’s actual IP address.

Requirements

  • Windows computer (can stay on or wake from sleep)
  • iTrixx device on the same network
  • Internet access for the initial Python download only

Step-by-step guide

Step 1 – Install Python

  1. Go to https://www.python.org/downloads/
  2. Download the latest stable version for Windows (Python 3.14 or newer)
  3. Run the installer
  4. Important: On the first screen, check the box: Add python.exe to PATH
  5. Click Install Now and complete the installation

Step 2 – Verify Installation

  1. Open Command Prompt
  2. Type: python --version
  3. You should see output like: Python 3.14.2 If not, restart your computer and try again.

Step 3 – Create Project Folder

  1. Open File Explorer
  2. Create a new folder, e.g.: C:\iTrixx_logger

Step 4 – Install Required Library

  1. In Command Prompt, run: pip install requests (If it fails, try: python -m pip install requests)

Step 5 – Create the Script

  1. Inside C:\iTrixx_logger, create a new text file
  2. Name it: “fetch_json.py”. Important: Use quotes to make Python
  3. Open it in Notepad
  4. Paste the following code:
import requests
import csv
import os
from datetime import datetime

URL = "http://<ip_address>"  # WFMN or Ultra-NHM URL
CSV_FILE = "data_log.csv"

def main():
    response = requests.get(URL, timeout=10)
    response.raise_for_status()
    data = response.json()

    if isinstance(data, dict):
        data = [data]

    timestamp = datetime.now().isoformat()
    for row in data:
        row["timestamp"] = timestamp

    file_exists = os.path.isfile(CSV_FILE)

    with open(CSV_FILE, "a", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=data[0].keys())
        if not file_exists:
            writer.writeheader()
        writer.writerows(data)

if __name__ == "__main__":
    main()
  1. Edit the URL = … line to match your device, see the examples
  2. Save as an All Files and close the file.

Step 6 – Test the Script Manually

  1. In Command Prompt: cd C:\iTrixx_logger
  2. Run: python fetch_json.py
  3. Check the folder – you should now have a file named data_log.csv
  4. Open data_log.csv in Excel or any spreadsheet program to confirm it contains data + a “timestamp” column

Step 7 – Schedule Automatic Runs (Every Hour) Use Windows Task Scheduler:

Use Windows Task Scheduler:

  1. Open Task Scheduler (taskschd.msc)
  2. Click Create Task
  3. General Tab:
    • Run whether user is logged on or not
    • Run with highest privileges
  4. Triggers Tab:
    • New → Begin the task: On a schedule → Daily
    • Repeat task every: 1 hour
    • Duration: Indefinitely
  5. Actions Tab:
    • Start a program
    • Program/script: C:\iTrixx_logger
    • Add arguments: C:\iTrixx_logger\fetch_json.py
    • Start in: C:\iTrixx_logger
  6. Conditions Tab:
    • Uncheck Start the task only if the computer is on AC power
    • Check Wake the computer to run this task
  7. Settings Tab:
    • Allow task to be run on demand
    • If task is already running → Run a new instance in parallel
  8. Save and test by right-click → Run

Now, your CSV file will update automatically every hour, even if your laptop is on battery or in sleep mode.

Step 8 – Verify Automation

Wait 1 hour, or temporary change the interval to 1 minute

Open data_log.csv – new rows should appear with recent timestamps

Troubleshooting

Script fails manually? Check the URL is correct and device is reachable

No file created? Ensure python is in PATH and requests is installed

Task doesn’t run? Confirm python.exe path is correct and wake/computer-on settings are applied

CSV empty/malformed? Device might return unexpected format – test the URL in a browser first