Rixen ControlBoard Web Portal API

1. System Architecture

Welcome developer! This document describes how to create your own controller for the Rixen's MCS7 PowerBox. Heat your space using our fully local, unauthenticated REST API which allows smart home hubs (like Home Assistant, Hubitat, or Node-RED) to read system states and send commands without relying on the cloud.

Flow/Map of System:

System state is controller-owned. You send commands, the system accepts them then adjusts values. It won't return values directly, rather the system returns its state like a heartbeat broadcasting status.xml.

💡 Home Assistant Users Before building your own custom YAML scripts, check out the community-built Home Assistant integration available via HACS: ha-rixens-integration. It handles the math, polling, and UI creation for you automatically!

2. Reading System Status (status.xml)

Returns full system status in XML format. This acts as a single status snapshot: no partial reads. It contains variables some of which we set, some are calculated/state-driven like "heaterstate".

2.1 Endpoint & Polling Limits

GET /status.xml
⚠️ Critical Polling Limits The Rixen Mbed microcontroller prioritizes physical HVAC control. It is not a heavy-duty web server.
  • Recommended Polling Rate: 1 request every 10 to 30 seconds.
  • Absolute Maximum: 1 request per second.

2.2 Example XML Output

You can test this by typing http://<YOUR_DEVICE_IP>/status.xml in your browser bar while connected to the device.

<response>
  <version>HW2-1.205 2025_11_21 RIXENS</version>
  <heatversion>1.00 2023-05-30</heatversion>
  <lfs>0</lfs>
  <mode>1</mode>
  <uptime>393</uptime>
  <currenttemp>211</currenttemp>
  <currenthumidity>366</currenthumidity>
  <heater1>
    <heaton>0</heaton>
    <battv>125</battv>
    <flametemp>2675</flametemp>
    <inlettemp>2450</inlettemp>
    <outlettemp>2500</outlettemp>
  </heater1>
  <heater1-faults>
    <fault>
      <name>AF</name>
      <value>0</value>
    </fault>
  </heater1-faults>
  <settings>
    <floorenable>1</floorenable>
    <engineenable>1</engineenable>
    <electricenable>1</electricenable>
    <setpoint>189</setpoint>
    <fanspeed>10</fanspeed>
  </settings>
</response>
            

3. Sending Commands (interface.cgi)

All live controls are issued via command-based CGI endpoints. The interface.cgi controls the interface, fans, heaters, and accessories. Commands are broken down into actions based on target.

GET /interface.cgi?act=<ACTION_ID>&val=<VALUE>

3.1 Command Reference Table

Important Data Types The API expects strict base-10 integers. Do not send decimals or strings (like "ON" or "OFF"). Heat sources and calls are toggling.
Action act= val= Description
Target Temp 1 See Math Below
Fan Speed 2 0 to 100 (percentage). 999 = Auto
Engine Add Heat 3 1 = On, 0 = Off
Electric Heat 4 1 = On, 0 = Off
Furnace 5 1 = On, 0 = Off
Hot Water 6 1 = On, 0 = Off
Engine Pre-heat 7 1 = On, 0 = Off
Fan State 8 1 = On, 0 = Off
Heated Floors 10 1 = On, 0 = Off
Aux 11 1 = On, 0 = Off
Refresh Wi-Fi 15 Refresh list of local Wi-Fi

3.2 🌡️ Temperature Math (act=1)

The Rixen system calculates temperature internally as scaled units. When building your UI slider, you must convert your desired temperature using the following formulas before sending the val:

Note: No direction, up/down is irrelevant. The controller clamps and validates internally. Example: /interface.cgi?act=1&val=239 sets target temp to 75F.

3.3 💨 Fan Controls (act=2 & act=8)

When sending a fan speed command, you must restrict your UI input to a strict 0 to 100 range. Do not send values between 101 and 998. To trigger Auto Mode, send exactly val=999.

Our controller sets Fan State to 0 to turn fans off. This cuts the 12V power to fans completely where as Fan Speed only changes the PWM speed.

We recommend starting your fans at at least 10%. While it depends on hardware, too slow a speed may not have the momentum to begin spinning a stopped fan.

4. Secondary Commands

4.1 buttons.cgi

Here are some miscellaneous functions:

4.2 preset.cgi

Preset functionality is still in development, and intended to be a one-button press for your favorite settings. Use the following URL to set temp, fan speed, constant (hot water), electric element, furnace, engine add heat.

http://10.10.10.10/preset.cgi?act=1&temp=228&spd=20&cnst=1&ele=1&fur=1&eng=0

4.3 infra.cgi (Wi-Fi Configuration)

Used to connect the system to an existing home or vehicle network (Infrastructure Mode). Ensure your ssid and passwd are URL-encoded if they contain special characters.

http://10.10.10.10/infra.cgi?sectype=4194308&passwd=PASSWORD&ssid=SSID&ipOp=1&stIP=192.169.7.200&Mask=255.255.255.0&Gate=192.168.7.1&DNS=192.168.7.1

(Note: changing Wi-Fi access point settings uses buttons.cgi with sectype instead of act ).

5. Testing Examples

Pop these in your URL bar while connected to your PowerBox:

Developer Tip You can watch these commands live using the network tab in browser dev tools. Press the button and watch the network traffic. fn+F12 opens this in most browsers. If you're getting errors trying to pass these commands using Google Chrome, throw --disable-web-security --disable-gpu into your shortcut target. (Note: Only do this for temporary local testing, as it disables browser safety features.)

For further assistance, please reach out to our team:

  • 📞 Give us a call at (503) 668-6090
  • ✉️ Email us at contact@rixens.com
Rixen's Building