Local HTTP API Documentation - Beniferro Gen 2

The Beniferro water treatment controller exposes a simple local HTTP API for retrieving measurements and relay states on the local network. This API is available starting from firmware version 251125.

All API requests should be made to the device's local IP address on port 80. The API is unauthenticated and uses standard HTTP GET requests. At the moment, it is read-only and does not support modifying device settings or controlling relays.

1. Measurements Endpoint

GET /api/measurements

Retrieves all available sensor readings from the controller. All fields are included in the response, but may not be applicable depending on the specific device configuration.

Request

GET http://<device-ip>/api/measurements

Example Response

{
  "mac": "A842E3AE1D2C",
  "measurements": {
    "ph": {
      "name": "pH",
      "value": 7.41
    },
    "rx": {
      "name": "Redox",
      "value": 606.91
    },
    "flowswitch": {
      "name": "Flow",
      "value": 0
    },
    "levelswitch_1": {
      "name": "pH level",
      "value": 1
    },
    "levelswitch_2": {
      "name": "Rx level",
      "value": 1
    },
    "levelswitch_3": {
      "name": "Levelswitch",
      "value": 1
    },
    "conductivity": {
      "name": "Conductivity",
      "value": 176
    },
    "pressure": {
      "name": "Pressure",
      "value": -0.44
    },
    "temperature_1": {
      "name": "Temperature 1",
      "value": 28.71
    },
    "temperature_2": {
      "name": "Temperature 2",
      "value": null
    },
    "temperature_3": {
      "name": "Temperature 3",
      "value": null
    }
  },
  "version": "251125"
}

Measurement Field Definitions

KeyDescription
temperature_1Temperature probe 1 (°C)
temperature_2Temperature probe 2 (°C)
temperature_3Temperature probe 3 (°C)
phpH value
rxRedox/ORP (mV)
conductivityConductivity
pressurePressure sensor
flowswitchFlow switch (1 = flow, 0 = no flow)
levelswitch_1pH tank level (1 = OK, 0 = empty)
levelswitch_2Redox tank level (1 = OK, 0 = empty)
levelswitch_3Additional level switch

2. Relays Endpoint

GET /api/relays

Returns the status of all relay outputs on the device.

Request

GET http://<device-ip>/api/relays

Example Response

{
  "mac": "A842E3AE1D2C",
  "relays": {
    "1": { "duty_active": false, "can_run": true, "power": false, "locked": false },
    "2": { "duty_active": false, "can_run": true, "power": false, "locked": false },
    "3": { "duty_active": false, "can_run": true, "power": false, "locked": false },
    "4": { "duty_active": false, "can_run": true, "power": false, "locked": false }
  },
  "version": "251125"
}

Relay Field Definitions

FieldDescription
duty_activeIndicates whether a duty cycle automation is active.
can_runWhether the relay is allowed to operate based on safety stop settings.
powerCurrent relay state (true = ON, false = OFF).
lockedIf true, the relay is not automatically controlled.