MQTT Publisher for Eaton UPS Companion status messages to Home Assistant
MIT License
A tool for publishing status data from a local Eaton UPS Companion service to Homeassistant.
The following quick start guide should get you up and running from a blank Homeassistant installation. Feel free to skip a step if your system is already configured.
[!NOTE] When using the Mosquitto broker Add-on, your MQTT broker hostname will be the same as your Homeassistant's, e.g. "
homeassistant.local
".
As mosquitto requires authentication, I heavily suggest creating a new user for data ingest.
Windows binaries are provided on the GitHub Releases page.
If you prefer to use your own Python insallation, a pre-built package is hosted on PyPI and can be installed and updated using the pip
utility:
pip install -U euc2mqtt
[!NOTE] This tool needs to run on the same host as Eaton UPS Companion, as EUC in its default configuration only accepts connections on
localhost:4679
.
Open a terminal and run the tool, providing the broker hostname (your Homeassistant hostname), username and the password!
Option 1: Standalone application
.\euc2mqtt --mqtt <broker hostname> --username <user> --password <password>
Option 2: Run as Python module
python -m euc2mqtt --mqtt <broker hostname> --username <user> --password <password>
A more in-depth description of available command line parameters can be viewed by appending -h
at the end of your input. For example:
> .\euc2mqtt -h
usage: euc2mqtt [-h] [--name NAME] [--mqtt MQTT] [--euc EUC] [--username USERNAME] [--password PASSWORD] [--interval INTERVAL] [--full-update FULL_UPDATE] [--logfile LOGFILE] [--verbose]
MQTT Publisher for Eaton UPS Companion status messages to Home Assistant. See https://github.com/islandcontroller/euc2mqtt for more info!
options:
-h, --help show this help message and exit
--name NAME Device name
--mqtt MQTT MQTT broker hostname and port (hostname[:port])
--euc EUC Eaton UPS Companion hostname and port (hostname[:port])
--username USERNAME Username for MQTT broker authentication
--password PASSWORD Password for MQTT broker authentication
--interval INTERVAL Update interval in seconds
--full-update FULL_UPDATE
Number of incremental dataset fetches between full updates
--logfile LOGFILE Output log messages to a file
--verbose Enable verbose logging
euc2mqtt.exe
here)--mqtt <broker hostname> --username <user> --password <password>
[!WARNING] Exposing the EUC service may pose a security risk.
[!NOTE] When euc2mqtt is run on the same host as EUC, it is not required to expose the EUC service.
Start a notepad
instance with Admin privileges
Open C:\Program Files (x86)\Eaton\UPSCompanion\configs\config.js
Edit the "httpServers
" line to listen on all interfaces:
"httpServers": {"http": {"port": 4679, "hostname": "0.0.0.0"}},
The contents of this repository are licensed under the MIT License. The full license text is provided in the LICENSE
file.
SPDX-License-Identifier: MIT
"Eaton" is a trademark of Eaton Corporation. "Windows" is a trademark of Microsoft Corporation. All trademarks are property of their respective owners.