-
-
Notifications
You must be signed in to change notification settings - Fork 420
Support Vertiv Liebert PSI5 UPS with SNMP #3299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
* add c & h driver files * Add files via upload * Add vertiv-psi5-mib.c to Makefile.am * Add vertiv-psi5-mib.h to Makefile.am
Added shutdown and start delay control for UPS.
jawz101
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added shutdown controls
|
❌ Build nut 2.8.4.4170-master failed (commit 783489c623 by @jawz101) |
|
I don't know what any of the build bot things mean. Sorry |
…ain.h" missed before [networkupstools#3299] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
|
Well, seems it hallucinated quite a bit of types and macros that do not exist, forgot a significant include file for definitions, and used a wrong amount of fields in the tables, but it is a decent start anyhow, assuming it at least mapped names to OIDs correctly :) Otherwise, the table field order is all mixed up, running the script to collect actual walk from a device and replacing the reading names would have been more reliable. |
…tworkupstools#3299] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
|
I've updated the PR sources so they at least compile, but I suppose that for this driver to be useful, at least I did not check the OID numbers vs. data point names so far, either. I would strongly recommend taking the dive into a bit of development (never hurts to get more skills), and following that documentation about making a new SNMP subdriver and running the script(s) mentioned there to temporarily generate a new set of source files, which would be populated with a ton of "unmapped" values for OIDs seen on your device. Then the mapping table from that generated source file can be compared to the one you would have in this PR, and missing points filled in. You can also test the resulting driver locally, by building NUT per https://github.com/networkupstools/nut/wiki/Building-NUT-for-in%E2%80%90place-upgrades-or-non%E2%80%90disruptive-tests instructions and running the test driver from the build workspace as Probably some values would need mapping methods from numbers to strings (and back for writes), see precedent in other |
…tworkupstools#3299] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
|
Thank you. I will take a look at your linked instructions tonight (from both here & the ticket) and see how I can fare walking through the steps.) If I'm going to go through the work, I'd at least like to try & classify every bit of the snmp messages the UPS does generate that NUT will consume. |
Updated the version number and modified SNMP OIDs for device monitoring and alarms.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I used iReasoning MIB Browser loaded with Vertiv Liebert's MIB files to have Gemini reverify the data coming from my UPS. Exported iReasoning's output as an xml and let Gemini rewrite the c file with its proper associations. It recognized some conversion errors (eg 28.7v instead of 287v). It decided to use macros this time as well.
If this doesn't work I apologize and there is no need to merge- esp if it doesn't look like it should be done. I'm basically slapping commands into gemini, having it tell me what files to grab, and repeatedly ask it why it did what it did and try to catch if it changes its mind on something to defend its answers.
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…iteration (SU_FLAG* values, IETF identification) [networkupstools#3299] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…ic [networkupstools#3299] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…etworkupstools#3299] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
|
Cheers, I've pushed an update that renames the sources and tables to a more generic Do you have a chance to actually build the resulting code to check against your UPS? |
I'll try tonight. My learning curve is taking this in baby steps :/ I doubt anything would be too specific to the PSI5 series because the Intellislot card appears to be compatible with even more elaborate, larger data center equipment that may include environmental sensors. I had just bought my tiny PSI5 series UPS because I did want something with a NIC option, and a UPS which was line interactive because everything I read seemed to say that was a recommended specification for sensitive equipment. Plus, I got this Vertiv/Liebert UPS pretty cheaply and the Intellislot card very cheap as well. And their replacement batteries looked pretty affordable too versus other more known products. Really, I have no idea why vendors don't try to get their stuff supported in NUT and other open source products. Like, it makes no sense. Even if they have their own enterprise mgmt products- they get their products in a lot more people's hands. I just submitted a support ticket to their site referencing this pull request- so maybe they'll chime in if they recognize how beneficial it could be to have fully supported hardware to NUT. |
|
I had Gemini ... walk me through testing the new driver. Before and after files uploaded a
|
|
sorry. I added one last revision thought I don't know if gemini screwed with your formatting. I just reran the driver and had it make sure it was reading all of the data properly. Honestly, I am baffled major manufacturers would not reach out to get their stuff supported. If NUT is the de facto open source UPS management solution, literally a few hours of their time could mean selling 10,000 more of a product and millions of dollars. Like NUT was built into my QNAP NAS, pfSense router, & Ugreen NAS appliance. A few lines of code make a product suddenly interesting to tens of thousands of people. |
|
I am baffled too. A few times they do reach out, but either to request that some HCL/DDL is urgently updated or a few mapping lines added. Usually as a mailing list request rather than a PR. Some vendors did a lot more in the past, like contributing whole new drivers or (in case of MGE/Eaton years ago) supporting the infra and/or employing core team members. But sadly yeah, more outreach somehow would be great. It is odd leading a project where I suspect there may be millions of installations and users, yet just a few hundred were ever seen actively. I was talking around at FOSDEM, and some people recognized that "yeah, I saw some banners when my server/NAS/router/HomeAssistant/... boots, so I guess I am a user" - so when it works well, people do not even realize they are the users ;) |
|
Thanks for the updated commit, I'll wrangle the format back to project standards :) |
…anges [networkupstools#3299] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
|
Thanks for the debug logs. In the In particular, it seems that The |
|
@jawz101 : would you please be able to run a build of the latest state of this branch, with |
|
Will do. And thank you for your interest! It's exciting to flip new switches. I do SQL work and love getting feedback from my users. |
|
I have successfully tested this PR on a Vertiv Liebert PSI5-750MT120 using an SNMP connection. Test Environment:
Findings: Comparison (Web UI vs NUT):
Here is the Executive Summary and technical breakdown of the test results for the Vertiv Liebert PSI5 UPS using the new NUT driver from Pull Request #3299. Executive SummaryThe testing of the custom NUT driver build (PR #3299) was successful. The implementation correctly resolves the device identification issues present in the standard release. Transitioning from the generic "fallback" mode to native Vertiv MIB support resulted in the acquisition of critical device metrics—specifically serial numbers, nominal ratings, and precise floating-point measurements—that were previously unavailable. The new driver mapping is stable and provides a significantly richer dataset than the standard package. We recommend reporting these positive findings to the developer to support the merging of this pull request. Technical Findings: Before vs. After1. Device Identification & Protocol
2. Data Precision & GranularityThe native driver interprets the raw SNMP data with higher precision, moving from rounded integers to floating-point values.
Metric | Before (Standard) | After (PR #3299) | Improvement
-- | -- | -- | --
Input Voltage | 124 (Integer) | 123.60 (Float) | High Precision
Output Voltage | 124 (Integer) | 123.60 (Float) | High Precision
Input Current | 0.70 | 0.70 | Consistent
Export to Sheets 3. Newly Acquired MetricsThe "After" dataset includes several critical variables that were completely missing in the "Before" state. These provide essential context for monitoring the UPS health and monitoring capacity.
Everything appears functional and stable. I have attached the |
|
Thanks! Just to clarify, the "tripplite MIB" it fell back to is so far in fact an alias for the lowest fallback of IETF Standard UPS MIB. A vendor-specific "tripplite" is also waiting for attention for some years... |
|
I tell you- feeding ai mib files, running before & after comparisions, and arguing with it felt pretty successful. Like, it walked me through every command to set up the build environment. As long as I kept arguing with it, it made it's way through fixing its mistakes. Last night I eventually got very specific where I prompted it to:
|
|
Wow, thanks for the details! |


Commit generated w/ long conversations with Google Gemini Pro troubleshooting some of the variable data not captured by the IETF MIB. I also fed Gemini Vertiv's vendor MIBS and the snmpwalk coming from my UPS to address what variables could be captured.
Feel free to squash, rebase, or reject. If I need to change something I can, though I'm not a programmer- so I understand a rejection considering the significance of this project.
#3296