openapi: 3.2.0 info: title: Braiins OS Public REST Cooling API description: '' contact: name: Braiins url: https://help.braiins.com email: help@braiins.com license: name: '' version: 1.7.0 servers: - url: http://miner/ tags: - name: Cooling paths: /api/v1/cooling/mode: put: tags: - Cooling summary: Set cooling mode description: Sets the active cooling mode for the miner. The mode can be set to auto, manual, immersion, or hydro. operationId: setCoolingMode requestBody: description: 'Cooling mode to activate. Can be one of: auto, manual, immersion, or hydro.' content: application/json: schema: $ref: '#/components/schemas/SetCoolingModeRequestMode' required: true responses: '200': description: Successful response containing active cooling mode content: application/json: schema: $ref: '#/components/schemas/SetCoolingModeResponseMode' /api/v1/cooling/state: get: tags: - Cooling summary: Get cooling state description: Retrieves the current cooling state of the miner, including temperature measurements and the state of all fans. operationId: getCoolingState responses: '200': description: Successful response containing information about temperature measurements and fans states content: application/json: schema: $ref: '#/components/schemas/GetCoolingStateResponse' components: schemas: AutoPauseMode: type: object description: Automatic pause mode starts with fans going with last fan speed used for mining and slowly decreases speed down to 0% CoolingHydroMode: type: object properties: dangerous_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' hot_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' target_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' SetCoolingModeRequestMode: oneOf: - type: object required: - auto properties: auto: $ref: '#/components/schemas/CoolingAutoMode' - type: object required: - manual properties: manual: $ref: '#/components/schemas/CoolingManualMode' - type: object required: - immersion properties: immersion: $ref: '#/components/schemas/CoolingImmersionMode' - type: object required: - hydro properties: hydro: $ref: '#/components/schemas/CoolingHydroMode' description: 'Cooling mode to set. If the cooling mode is changed, all fields that aren''t relevant to the new mode are reset to default values. If the cooling mode values are updated, the new values are applied to the current mode.' TemperatureSensor: type: object required: - location properties: id: type: - integer - 'null' format: int32 description: Sensor id minimum: 0 location: type: integer format: int32 description: Sensor location temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' description: Temperature CoolingAutoMode: type: object description: 'The temperature control modes. Miner software tries to regulate the fan speed so that miner temperature is approximately at the target temperature. The allowed temperature range is 0-200 degree Celsius.' properties: dangerous_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' description: Temperature threshold at which BOSMiner shuts down in order to prevent overheating and damaging the miner. hot_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' description: Temperature threshold at which the fans start to run at 100%. max_fan_speed: type: - integer - 'null' format: int32 description: Maximum fan speed expressed as a value between 0 and 100. max_fan_speed must be greater than min_fan_speed. minimum: 0 min_fan_speed: type: - integer - 'null' format: int32 description: Minimum fan speed expressed as a value between 0 and 100. min_fan_speed must be less than max_fan_speed. minimum: 0 minimum_required_fans: type: - integer - 'null' format: int32 description: Minimum number of fans required to have BOSminer operational. minimum: 0 pause_mode: oneOf: - type: 'null' - $ref: '#/components/schemas/PauseMode' description: Pause mode used for fans when the miner is paused target_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' description: Temperature that the miner will try to maintain PauseMode: type: object description: Pause mode to control fans behaviour after you pause the miner properties: mode: oneOf: - type: 'null' - $ref: '#/components/schemas/PauseModeMode' CoolingImmersionMode: type: object properties: dangerous_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' hot_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' target_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' PauseModeMode: oneOf: - type: object required: - auto properties: auto: $ref: '#/components/schemas/AutoPauseMode' - type: object required: - manual properties: manual: $ref: '#/components/schemas/ManualPauseMode' SetCoolingModeResponseMode: oneOf: - type: object required: - auto properties: auto: $ref: '#/components/schemas/CoolingAutoMode' - type: object required: - manual properties: manual: $ref: '#/components/schemas/CoolingManualMode' - type: object required: - immersion properties: immersion: $ref: '#/components/schemas/CoolingImmersionMode' - type: object required: - hydro properties: hydro: $ref: '#/components/schemas/CoolingHydroMode' description: The resulting cooling mode Temperature: type: object required: - degree_c properties: degree_c: type: number format: double CoolingManualMode: type: object description: Fans are kept at a fixed, user-defined speed, no matter the temperature. properties: dangerous_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' description: Temperature threshold at which BOSMiner shuts down in order to prevent overheating and damaging the miner. fan_speed_ratio: type: - number - 'null' format: double description: 'User defined fan speed expressed as a ratio between 0.0 and 1.0 where 0.0 means completely turned off and 1.0 means running at full speed possible' hot_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' description: Temperature threshold at which the fans start to run at 100%. minimum_required_fans: type: - integer - 'null' format: int32 description: Minimum number of fans required to have BOSminer operational. minimum: 0 pause_mode: oneOf: - type: 'null' - $ref: '#/components/schemas/PauseMode' description: Pause mode target_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/Temperature' description: Temperature that the miner will try to maintain when power scaling is enabled GetCoolingStateResponse: type: object description: 'Response to get current fan states and temperature measurements' required: - fans properties: fans: type: array items: $ref: '#/components/schemas/FanState' description: All Fans state highest_temperature: oneOf: - type: 'null' - $ref: '#/components/schemas/TemperatureSensor' description: Sensor with current highest temperature FanState: type: object description: Structure which contain info about one specific miner fan. required: - rpm properties: position: type: - integer - 'null' format: int32 description: Fan positions/ID minimum: 0 rpm: type: integer format: int32 description: Actual fan RPM (Revolutions/Rotation Per Minute) minimum: 0 target_speed_ratio: type: - number - 'null' format: double description: Actual fan speed ratio(PWM) in range 0.0 - 1.0 ManualPauseMode: type: object description: 'Manual pause mode runs with defined fixed fans speed and either turns off after a certain period of time or runs indefinitely according to fan_runtime settings' properties: fan_pause_runtime: type: - integer - 'null' format: int32 description: 'Controls how long fans run at the fixed speed before turning off.
1 = FAN_PAUSE_RUNTIME_LIMITED - fans run for a limited duration (see `fan_pause_runtime_limited_duration_s` in `CoolingConstraints`) then turn off
2 = FAN_PAUSE_RUNTIME_INDEFINITE - fans run indefinitely at the fixed speed until miner is resumed' pause_cooldown_fan_speed_ratio: type: - number - 'null' format: double description: 'User defined pause cooldown fan speed expressed as a ratio between 0.0 and 1.0 where 0.0 means completely turned off and 1.0 means running at full speed possible'