1[ 2 { 3 "name": "set_target_fan_not_present", 4 "groups": [ 5 { 6 "name": "air_cooled_zone0_fans", 7 "interface": "xyz.openbmc_project.Inventory.Item", 8 "property": { "name": "Present" } 9 } 10 ], 11 "triggers": [ 12 { 13 "class": "init", 14 "method": "get_properties" 15 }, 16 { 17 "class": "signal", 18 "signal": "properties_changed" 19 } 20 ], 21 "actions": [ 22 { 23 "name": "count_state_before_target", 24 "count": 1, 25 "state": false, 26 "target": 255 27 } 28 ] 29 }, 30 { 31 // Hold fans at the given target when a number of rotors are nonfunctional. 32 "name": "set_target_fan_not_functional", 33 "groups": [ 34 { 35 "name": "fan3", 36 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 37 "property": { "name": "Functional" } 38 }, 39 { 40 "name": "fan4", 41 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 42 "property": { "name": "Functional" } 43 }, 44 { 45 "name": "fan5", 46 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 47 "property": { "name": "Functional" } 48 }, 49 { 50 "name": "fan6", 51 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 52 "property": { "name": "Functional" } 53 }, 54 { 55 "name": "fan7", 56 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 57 "property": { "name": "Functional" } 58 }, 59 { 60 "name": "fan8", 61 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 62 "property": { "name": "Functional" } 63 } 64 ], 65 "triggers": [ 66 { 67 "class": "init", 68 "method": "get_properties" 69 }, 70 { 71 "class": "signal", 72 "signal": "properties_changed" 73 } 74 ], 75 "actions": [ 76 { 77 "name": "count_state_before_target", 78 "count": 1, 79 "state": false, 80 "target": 255 81 } 82 ] 83 }, 84 { 85 "name": "default_fan_floor_on_missing_service", 86 "groups": [ 87 { 88 "name": "zone0_ambient", 89 "interface": "xyz.openbmc_project.Sensor.Value", 90 "property": { "name": "Value" } 91 } 92 ], 93 "triggers": [ 94 { 95 "class": "init", 96 "method": "name_has_owner" 97 }, 98 { 99 "class": "signal", 100 "signal": "name_owner_changed" 101 } 102 ], 103 "actions": [ 104 { 105 "name": "call_actions_based_on_timer", 106 "timer": { 107 "interval": 5000000, 108 "type": "oneshot" 109 }, 110 "actions": [ 111 { 112 "name": "default_floor_on_missing_owner", 113 "groups": [ 114 { 115 "name": "zone0_ambient", 116 "interface": "xyz.openbmc_project.Sensor.Value", 117 "property": { "name": "Value" } 118 } 119 ] 120 } 121 ] 122 } 123 ] 124 }, 125 { 126 "name": "target_mapping_from_TS_temp", 127 "groups": [ 128 { 129 "name": "zone0_ambient", 130 "interface": "xyz.openbmc_project.Sensor.Value", 131 "property": { "name": "Value" } 132 } 133 ], 134 "triggers": [ 135 { 136 "class": "init", 137 "method": "get_properties" 138 }, 139 { 140 "class": "signal", 141 "signal": "properties_changed" 142 }, 143 { 144 "class": "timer", 145 "type": "repeating", 146 "interval": 5000000, 147 "preload_groups": true 148 } 149 ], 150 "actions": [ 151 { 152 "name": "target_from_group_max", 153 "groups": [ 154 { 155 "name": "zone0_ambient", 156 "interface": "xyz.openbmc_project.Sensor.Value", 157 "property": { "name": "Value" } 158 } 159 ], 160 "neg_hysteresis": 1, 161 "pos_hysteresis": 0, 162 "index": 0, 163 "map": [ 164 { "value": 10.0, "target": 38.0 }, 165 { "value": 18.0, "target": 38.0 }, 166 { "value": 20.0, "target": 41.0 }, 167 { "value": 21.0, "target": 43.0 }, 168 { "value": 22.0, "target": 46.0 }, 169 { "value": 24.0, "target": 48.0 }, 170 { "value": 28.0, "target": 51.0 }, 171 { "value": 32.0, "target": 56.0 }, 172 { "value": 34.0, "target": 59.0 }, 173 { "value": 36.0, "target": 61.0 }, 174 { "value": 40.0, "target": 64.0 }, 175 { "value": 41.0, "target": 66.0 }, 176 { "value": 42.0, "target": 69.0 }, 177 { "value": 43.0, "target": 71.0 }, 178 { "value": 44.0, "target": 74.0 }, 179 { "value": 45.0, "target": 77.0 }, 180 { "value": 46.0, "target": 79.0 }, 181 { "value": 47.0, "target": 82.0 }, 182 { "value": 48.0, "target": 84.0 }, 183 { "value": 49.0, "target": 87.0 }, 184 { "value": 50.0, "target": 89.0 } 185 ] 186 } 187 ] 188 }, 189 { 190 "name": "target_mapping_from_OCP_temp", 191 "groups": [ 192 { 193 "name": "zone0_ocp", 194 "interface": "xyz.openbmc_project.Sensor.Value", 195 "property": { "name": "Value" } 196 } 197 ], 198 "triggers": [ 199 { 200 "class": "init", 201 "method": "get_properties" 202 }, 203 { 204 "class": "signal", 205 "signal": "properties_changed" 206 }, 207 { 208 "class": "timer", 209 "type": "repeating", 210 "interval": 5000000, 211 "preload_groups": true 212 } 213 ], 214 "actions": [ 215 { 216 "name": "target_from_group_max", 217 "groups": [ 218 { 219 "name": "zone0_ocp", 220 "interface": "xyz.openbmc_project.Sensor.Value", 221 "property": { "name": "Value" } 222 } 223 ], 224 "neg_hysteresis": 2, 225 "pos_hysteresis": 2, 226 "index": 3, 227 "map": [ 228 { "value": 10.0, "target": 38.0 }, 229 { "value": 65.0, "target": 38.0 }, 230 { "value": 66.0, "target": 43.0 }, 231 { "value": 67.0, "target": 51.0 }, 232 { "value": 68.0, "target": 54.0 }, 233 { "value": 69.0, "target": 56.0 }, 234 { "value": 70.0, "target": 61.0 }, 235 { "value": 71.0, "target": 66.0 }, 236 { "value": 72.0, "target": 71.0 }, 237 { "value": 73.0, "target": 77.0 }, 238 { "value": 74.0, "target": 82.0 }, 239 { "value": 75.0, "target": 87.0 }, 240 { "value": 76.0, "target": 92.0 }, 241 { "value": 77.0, "target": 97.0 }, 242 { "value": 78.0, "target": 102.0 }, 243 { "value": 79.0, "target": 107.0 }, 244 { "value": 80.0, "target": 112.0 }, 245 { "value": 81.0, "target": 122.0 }, 246 { "value": 82.0, "target": 128.0 }, 247 { "value": 83.0, "target": 133.0 }, 248 { "value": 84.0, "target": 140.0 }, 249 { "value": 85.0, "target": 148.0 }, 250 { "value": 86.0, "target": 156.0 }, 251 { "value": 87.0, "target": 163.0 }, 252 { "value": 88.0, "target": 171.0 }, 253 { "value": 89.0, "target": 179.0 }, 254 { "value": 90.0, "target": 186.0 }, 255 { "value": 91.0, "target": 194.0 }, 256 { "value": 92.0, "target": 201.0 }, 257 { "value": 93.0, "target": 209.0 }, 258 { "value": 94.0, "target": 217.0 }, 259 { "value": 95.0, "target": 224.0 }, 260 { "value": 96.0, "target": 232.0 }, 261 { "value": 97.0, "target": 240.0 }, 262 { "value": 98.0, "target": 247.0 }, 263 { "value": 99.0, "target": 255.0 } 264 ] 265 } 266 ] 267 }, 268 { 269 "name": "target_mapping_from_BP_NVME_temp", 270 "groups": [ 271 { 272 "name": "zone0_bp_nvme", 273 "interface": "xyz.openbmc_project.Sensor.Value", 274 "property": { "name": "Value" } 275 } 276 ], 277 "triggers": [ 278 { 279 "class": "init", 280 "method": "get_properties" 281 }, 282 { 283 "class": "signal", 284 "signal": "properties_changed" 285 }, 286 { 287 "class": "timer", 288 "type": "repeating", 289 "interval": 5000000, 290 "preload_groups": true 291 } 292 ], 293 "actions": [ 294 { 295 "name": "target_from_group_max", 296 "groups": [ 297 { 298 "name": "zone0_bp_nvme", 299 "interface": "xyz.openbmc_project.Sensor.Value", 300 "property": { "name": "Value" } 301 } 302 ], 303 "neg_hysteresis": 2, 304 "pos_hysteresis": 0, 305 "index": 4, 306 "map": [ 307 { "value": 10.0, "target": 38.0 }, 308 { "value": 35.0, "target": 38.0 }, 309 { "value": 36.0, "target": 43.0 }, 310 { "value": 37.0, "target": 48.0 }, 311 { "value": 38.0, "target": 54.0 }, 312 { "value": 39.0, "target": 59.0 }, 313 { "value": 40.0, "target": 64.0 }, 314 { "value": 41.0, "target": 66.0 }, 315 { "value": 42.0, "target": 69.0 }, 316 { "value": 43.0, "target": 71.0 }, 317 { "value": 44.0, "target": 74.0 }, 318 { "value": 45.0, "target": 77.0 }, 319 { "value": 46.0, "target": 79.0 }, 320 { "value": 47.0, "target": 82.0 }, 321 { "value": 48.0, "target": 84.0 }, 322 { "value": 49.0, "target": 87.0 }, 323 { "value": 50.0, "target": 89.0 }, 324 { "value": 51.0, "target": 99.0 }, 325 { "value": 52.0, "target": 99.0 }, 326 { "value": 53.0, "target": 105.0 }, 327 { "value": 54.0, "target": 110.0 }, 328 { "value": 55.0, "target": 115.0 }, 329 { "value": 56.0, "target": 120.0 }, 330 { "value": 57.0, "target": 125.0 }, 331 { "value": 58.0, "target": 130.0 }, 332 { "value": 59.0, "target": 135.0 }, 333 { "value": 60.0, "target": 140.0 }, 334 { "value": 61.0, "target": 150.0 }, 335 { "value": 62.0, "target": 161.0 }, 336 { "value": 63.0, "target": 171.0 }, 337 { "value": 64.0, "target": 181.0 }, 338 { "value": 65.0, "target": 191.0 }, 339 { "value": 66.0, "target": 204.0 }, 340 { "value": 67.0, "target": 217.0 }, 341 { "value": 68.0, "target": 230.0 }, 342 { "value": 69.0, "target": 255.0 } 343 ] 344 } 345 ] 346 }, 347 { 348 "name": "target_mapping_from_M2_NVME_temp", 349 "groups": [ 350 { 351 "name": "zone0_m2_nvme", 352 "interface": "xyz.openbmc_project.Sensor.Value", 353 "property": { "name": "Value" } 354 } 355 ], 356 "triggers": [ 357 { 358 "class": "init", 359 "method": "get_properties" 360 }, 361 { 362 "class": "signal", 363 "signal": "properties_changed" 364 }, 365 { 366 "class": "timer", 367 "type": "repeating", 368 "interval": 5000000, 369 "preload_groups": true 370 } 371 ], 372 "actions": [ 373 { 374 "name": "target_from_group_max", 375 "groups": [ 376 { 377 "name": "zone0_m2_nvme", 378 "interface": "xyz.openbmc_project.Sensor.Value", 379 "property": { "name": "Value" } 380 } 381 ], 382 "neg_hysteresis": 2, 383 "pos_hysteresis": 0, 384 "index": 5, 385 "map": [ 386 { "value": 10.0, "target": 38.0 }, 387 { "value": 61.0, "target": 38.0 }, 388 { "value": 68.0, "target": 38.0 }, 389 { "value": 69.0, "target": 204.0 } 390 ] 391 } 392 ] 393 } 394] 395