Pwm Speed Controller

Sets the speed based on a custom PWM curve.

Format

{
  "Type": "PwmSpeedController",
  "Config": {
    "CurvePoints": [<CurvePoint>],
    "Sensors": [<SensorIdentifier>],
    "SensorMixFunction": <enum>,
    "MinimumChange": <int>,
    "MaximumChange": <int>,

    "Trigger": <Trigger>
  }
}

Variables

CurvePoints

List of pwm curve points in [<value>, <speed>] format.

Note: <speed> is a value from 0 to 100 in percent.

Note: The <value> corresponds to the calculated value from the Sensors.

Important: The <speed> can be set to 0 to stop the device but if a bad <value> is used, it can cause the device to turn on and off frequently and shorten its livespan.

Note: Any <speed> beetween 1 and 19 will be raised to 20 as this is the minimum operating speed.

Required: Yes
Default value:

[]

Example:

"CurvePoints": [
  [30, 30],
  [45, 50],
  [55, 60],
  [65, 75],
  [75, 100]
]

Sensors

List of Sensor Identifiers to read values from.

Required: Yes
Default value:

[]

Example:

"Sensors": ["/intelcpu/0/temperature/8"]

SensorMixFunction

Determines how to combine values from Sensors if multiple sensors are configured.

Allowed values: "Maximum", "Minimum", "Average"

Required: No
Default value:

"Maximum"

Example:

"SensorMixFunction": "Average"

MinimumChange

Minimum allowed change of speed in percent.

Note: Use this to reduce device speed fluctuation.

Required: No
Default value:

4

Example:

"MinimumChange": 2

MaximumChange

Maximum allowed change of speed in percent.

Note: Use this to reduce device speed fluctuation.

Required: No
Default value:

8

Example:

"MaximumChange": 5

Trigger

Instance of a Trigger plugin.

Required: Yes
Default value:

Example:

"Trigger": {
  "Type": "AlwaysTrigger"
}

Example

{
  "Type": "PwmSpeedController", 
  "Config": {
    "CurvePoints": [
      [30, 30],
      [45, 50],
      [55, 60],
      [65, 75],
      [75, 100]
    ],
    "Sensors": ["/intelcpu/0/temperature/8"],
    "Trigger": {
      "Type": "AlwaysTrigger"
    }
  }
}