Skip to content

ecoen66/homebridge-platform-pdu

Repository files navigation

homebridge-platform-pdu

Homebridge dynamic Platform Plugin for Raritan and APC PDUs

A Raritan PX-5475 and APC AP7931 PDU plugin for Homebridge. This creates one or more PDU accessories, each with multiple outlet services and a light meter service to report on current utilization in Watts.

This code is heavily based on the work of invliD's homebridge-digipower-pdu accessory.

Installation

Run these commands:

% sudo npm install -g homebridge
% sudo npm install -g homebridge-platform-raritanpdu

NB: If you install homebridge like this:

sudo npm install -g --unsafe-perm homebridge

Then all subsequent installations must be like this:

sudo npm install -g --unsafe-perm homebridge-platform-raritanpdu

Configuration

Example platform config (needs to be added to the homebridge config.json): ...

	"platforms": [
    {
        "name": "LAB Platform PDU",
        "debug": false;
        "pdus": [
            {
                "ipAddress": "192.168.1.70",
                "snmpCommunity": "private"
            },
            {
                "ipAddress": "192.168.1.75",
                "snmpCommunity": "private"
            }
            
        ],
        "platform": "Platform PDU"
    }
  	]

...

Config Explanation:

Field Description
platform (required) Must always be "Platform PDU".
name (required) A name for HomeBridge to use to reference the platform.
ip_address (required) The internal ip address of your PDU.
snmp_community (required) The Write community string for your PDU.
debug (optional) Enables additional logging from the platform for troubleshooting.

Supported Agents

The only tested Raritan PDU model for this plugin is the one that I have in my lab, the PX-5475, but others should work. The only tested APC PDU model for this plugin is the one that I have in my lab, the AP7931. This is accomplished using the PX-PDU-MIB & APC PowerNet MIB v4.0.4.

The outlet count is grabbed from the PDU using SNMP, as are the Model, FirmwareRevision, SerialNumber & SNMP system name (used as a DisplayName).