• Recent
    • Tags
    • Popular
    • Register
    • Login

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website

    How to configure to get data from SNMP Table of alarms

    User help
    2
    6
    3.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      shaun
      last edited by

      Hi All,

      I have an Eaton UPS where the alarms are presented in what looks like a dynamic SNMP table.

      I need to be able to get the alarms from this device to pass up and get an event handler to fire.

      I've uploaded the MIB as an attachment (EATON-PXG-MIB) as well as a screenshot from my mib browser showing some sample results.

      Other devices I've configured in the past have a static table of true/false OIDs for different alarms, but this one is a bit different.

      Cheers!
      -Shaun
      [0_1502947011173_EATON-PXG-MIB.txt](Uploading 100%)
      0_1502947060360_Screen Shot 2017-08-17 at 1.17.02 pm.png

      1 Reply Last reply Reply Quote 0
      • phildunlapP
        phildunlap
        last edited by

        Hi shaun,

        I'm not sure I understand what you mean by dynamic table. Can you try uploading the mib again?

        It sounds like you mean the OIDs only exist when the alarm is active, rather than the they have consistent OIDs for an alarm condition. But, if the don't, how's the MIB going to describe them? You have to read the description each time? Googling "SNMP dynamic table" found an oppositional stackoverflow thread that disputed such a thing is valid.

        S 1 Reply Last reply Reply Quote 0
        • S
          shaun @phildunlap
          last edited by

          @phildunlap
          Try this URL for the mib:
          https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiKosKUy93VAhWFy7wKHfsQBOAQFggoMAA&url=http%3A%2F%2Fpqlit.eaton.com%2Fll_download_bylitcode.asp%3Fdoc_id%3D29400&usg=AFQjCNFxtuKksQdwY-6tszPc-HOZmTn7_A

          The file upload thing doesn't seem to be working for some reason...

          Dynamic table was probably the wrong wording for it.. but the content of the table is variable.. if you have a look at the screenshot attached to this post, i did a walk on the 'activealarmstable' and you can see the alarmSequenceIndex.N results where N is a unique ID for the alarm. That index is then used as a suffix with the description, value, level and time to form what could be interpreted as a table. I called i dynamic (in error?) because the content and index numbers are totally variable.

          Cheers!
          -Shaun

          0_1502951030414_Screen Shot 2017-08-17 at 2.23.32 pm.png

          1 Reply Last reply Reply Quote 0
          • phildunlapP
            phildunlap
            last edited by phildunlap

            Have you seen that SNMP REST endpoints were added for doing walks or reads? There is no way to configure an SNMP to easily support this sort of system. Depending on what you're trying to achieve (storing all alarms into an alphanumeric of the alarms the device has had?) you may be able to do this with a combination of the API and a scripting data source.

            If the SNMP API endpoints get you results, we can explore a way poll using walks through the API. It's probably possible, but it may get convoluted.

            0_1502985067818_snmp-endpoints.png

            1 Reply Last reply Reply Quote 0
            • phildunlapP
              phildunlap
              last edited by phildunlap

              You could also do it more directly with a script, possibly. Maybe something like...

              var container = new com.infiniteautomation.mango.rest.v2.util.MangoRestTemporaryResourceContainer("Script_");
              var snmpSettings = new com.serotonin.m2m2.web.mvc.rest.v2.SnmpSettings();
              snmpSettings.version = "v2c";
              snmpSettings.host = "localhost";
              snmpSettings.port = 9000;
              snmpSettings.retries = 0;
              snmpSettings.timeout = 250;
              snmpSettings.readCommunity = "Hi!";
              snmpSettings.oid = "1";
              
              var scriptUser = new com.serotonin.m2m2.vo.User();
              scriptUser.username = "script";
              scriptUser.id = 1; //will appear as admin in records, probably
              
              var walk = new com.serotonin.m2m2.snmp.mib.SnmpWalkTask("ScriptWalk", scriptUser, snmpSettings, container);
              var count = 0;
              while(count < 10 && !walk.isFinished()) {
                RuntimeManager.sleep(100);
                count += 1;
              }
              print(walk.getResults());
              
              S 1 Reply Last reply Reply Quote 0
              • S
                shaun @phildunlap
                last edited by

                @phildunlap

                Thanks Phil, I'll see what I can come up with!

                In the short term, Its probably going to be easier to just capture the values from the static OIDs and do checks within mango for out of range with an event detector.

                Cheers!
                -Shaun

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post