I built it because the iDRAC web interface is a fine place to look at a server once, and a terrible place to watch one over time. It shows you a number now; it doesn't graph inlet temperature against fan speed across a summer, or tell you what the box actually costs to run. Domoticz already does all of that well, it just had no way to see a PowerEdge.
The other reason is that a server rarely fails loudly. It sits there with one power supply quietly doing nothing, or a rollup that has been red for a week, and nobody notices until the second thing breaks.
What it does
- Creates devices for the hardware your server actually reports, so a machine with three fans and eight drives gets three fan devices and eight drive devices, not a fixed list padded with empty tiles
- Temperatures for chassis inlet and exhaust, every CPU, and the hottest DIMM, each carrying the server's own warning and critical thresholds
- Fan speeds in RPM, with the low-speed thresholds the iDRAC reports
- System power in watts plus a kWh counter, and input wattage per power supply
- CPU, memory, I/O and overall system utilization
- One System Health tile that shows the iDRAC's own fault text, for example Power supply redundancy is lost., instead of just a colour
- Power redundancy as its own device, because the group can read Critical while every individual supply still reports OK
- Storage and network: one device per physical drive, per RAID volume and per NIC port
Devices
Everything is created automatically on the first successful poll. Nothing to add by hand. The plugin creates several Domoticz Devices, one per family, because a single one caps out at 255 units and a full drive chassis will eat that.
Code: Select all
Device | What it holds
------------|--------------------------------------------------------------
..._system | Server Power (W + kWh), System Health, Power State, Inlet and
| Exhaust Temp, CPU/Memory/I/O/System Usage, Uptime, Boot
| Status, Chassis Intrusion, Power Redundancy
..._thermal | One temperature per CPU, hottest DIMM, one device per fan
..._power | One input-wattage device per power supply
..._storage | One device per RAID volume and per physical drive
..._network | One device per NIC port
..._control | Power Control and Identify LED (only when you enable control)
Code: Select all
System Health OK
Server Power 160 Watt (Today: 0.176 kWh)
Power Redundancy Redundant, 2 supplies (1 needed)
Inlet Temp 27.0 C Exhaust Temp 34.0 C
CPU1 Temp 53.0 C Max DIMM Temp 42.0 C
System Board Fan1 1920 RPM
PS1 Status 150.5 Watt PS2 Status 5 Watt
SSD 0:2:0 SSD, life 100%
HDD 0:2:3 HDD
BOSS SSD 0 SSD, life 100%
NIC ...Embedded.1 LinkUp 1000 Mb
Boot Status OSRunning Uptime 7.7 h
Bar graphs
Fan and temperature cards carry a coloured bar built from the server's own thresholds: red past critical, amber in the warning band, green in between. Nothing is invented; a sensor the server publishes no thresholds for simply gets no bar. A threshold the plugin had to estimate is labelled as such in the description and is deliberately never drawn as a band, because a coloured band carries no "(estimated)" label and would present a guess as a measurement.
These need a Domoticz build that includes the plugin Color fix (domoticz/domoticz#6968). On an older build everything else works exactly the same and the bars just don't appear.
Per-component power
Where the iDRAC licence allows it, the plugin also breaks system power down by subsystem: CPU, memory, storage, fan, PCIe and FPGA, plus per-GPU power and temperature where cards are reported. On a T550 at idle that reads CPU 51 W, storage 58 W, memory 5 W, fans 3.4 W. Storage drawing more than the processor is usually the surprise.
This comes from Dell's telemetry service and is licence-gated two ways: an iDRAC Datacenter licence unlocks Dell's own reports, and an OpenManage Enterprise Advanced licence unlocks OME Power Manager, whose reports the plugin reads instead. It works out which one your machine has by looking at what the reports contain rather than what they are called, so there is nothing to configure. On an iDRAC with neither licence those devices simply don't appear and nothing else changes.
When telemetry is available the Server Power device also switches to what the wall socket actually delivers rather than the mainboard sensor, which is a few percent higher.
Optional power control
Control is opt-in and two-staged. There's an "Allow Control" setting that is off by default, and while it's off no control device is created at all and every command is refused. Turn it on and you get two devices:
Code: Select all
Power Control | Selector: Power On, Graceful Shutdown, Graceful Restart,
| Force Off, Power Cycle
Identify LED | Toggles the chassis identify light
Worth knowing before you turn any of it on: once control is enabled, any Domoticz user, scene, timer or API client with access to that hardware can power off the server. And a graceful request is fire-and-forget, the iDRAC returns success even when no OS is there to act on it, so the log says the action was accepted, not that it worked. Watch the Power State device for what actually happened. The plugin deliberately does not copy Dell's own scripts in escalating to a forced power-off after five minutes.
Requirements
- A Dell PowerEdge with an iDRAC that speaks Redfish, built for iDRAC 9 and 10
- An iDRAC account. Read-only is enough for monitoring; only power control needs Server Control privilege
- Network access from the Domoticz host to the iDRAC on HTTPS 443
- Domoticz with the Python plugin system, Python 3.11 or newer
Install
Code: Select all
cd /opt/domoticz/plugins
git clone -b dist https://github.com/Rouzax/dell-idrac-domoticz-plugin dell-idrac
sudo systemctl restart domoticzEvery setting on the hardware page carries its own explanation and a link straight to the matching part of the manual.
Screenshots Documentation
Install guide, every setting, the full device reference, a troubleshooting page organised by what you see rather than by subsystem, and security notes on how the password is stored (it also links back to the GitHub repository):
https://rouzax.github.io/dell-idrac-domoticz-plugin/
One thing I'd like help with
GPU power and temperature are built and tested against real captures from GPU servers, but I don't have one to run it against live. If you have a PowerEdge with cards in it and the licence for telemetry, I'd genuinely like to know whether it works. The same goes for iDRAC 7 and 8, which are untested rather than known broken. The plugin asks the server what it offers instead of assuming, so a missing endpoint should cost you that one subsystem rather than the whole poll, but that is a theory until somebody tries it.