[Guide] Dell server monitoring and control with iDRAC and openHAB

Update #1

Below includes a revised and simplified (manual) fan speed control rule.
Instead of hard-coding most items, I went this time for a more flexible setup.

//Set item variables

var triggerItem   = ir.getItem(event.itemName);
var triggerState  = ir.getItem(triggerItem.name).getState();
var triggerLabel  = ir.getItem(triggerItem.name).getLabel();
var substring_pve = triggerItem.name.substring(5, 10); //you need to change this depending on your items

//User access

var username = "USER";
var password = "PASSWORD";

if(this.event === undefined) {
    // event does not exist
}

//Set correct IP Address

switch (triggerItem.name) {
   case "YOUR-Triggering-ItemName1":
      var substring_ip = "YOUR-IP-Server1";
      break;
   case "YOUR-Triggering-ItemName2":
      var substring_ip = "YOUR-IP-Server2";
      break;
   case "YOUR-Triggering-ItemName3":
      var substring_ip = "YOUR-IP-Server3";
      break;
   case "YOUR-Triggering-ItemName4":
      var substring_ip = "YOUR-IP-ServerX";
      break;
}

//Set correct fan speed HEX value

switch (triggerState) {
   case 0:
      var speed = "0x00";
      break;
   case 5:
      var speed = "0x05";
      break;
   case 10:
      var speed = "0x0A";
      break;
   case 20:
      var speed = "0x14";
      break;
   case 30:
      var speed = "0x1e";
      break;
   case 50:
      var speed = "0x32";
      break;
   case 70:
      var speed = "0x46";
      break;
   case 80:
      var speed = "0x50";
      break;
   case 100:
      var speed = "0x64";
      break;
}

//Actions

var execFAN = Exec.executeCommandLine(Duration.ofSeconds(5),"ipmitool","-I", "lanplus", "-H", substring_ip, "-U", username, "-P", password, "raw", "0x30", "0x30", "0x02", "0xff", speed);
Log.logWarn("servers", substring_pve + " (" + substring_ip + ") set to " + triggerState + "%");

As you can see, above reduces the number of lines drastically (in case of multiple servers).
Hope this helps!