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

adjusting event detector thresholds via dashboard


  • Hi,

    I need to give a customer access to edit event detector threshold values via a dashboard.

    Is there a way I can do this?

    Is there something in the API I can use for this, or even an example I could look at?

    Ideally it'd need to be dynamic so something like, for a given device, list all the event detectors that exist so you can select one and edit it.

    Thanks
    Shaun


  • We started working on this very thing last week and will be adding in the API endpoints needed and making some Angular directives. The only think I'm not clear on will be permissions. Currently for a user to change a event detector setting they would need edit permissions on the data point. Would that be ok or would you need a separate permission level just to edit the event detectors? How soon do you need to supply this to your customer? I think it's going to be at least a couple weeks before we release it.


  • Hi Shaun,

    There are some existing options already. Have a look in swagger at the event-detectors endpoints:

    0_1506371943710_eventDetectors.png

    Alternatively script contexts have the context object JsonEmport documented in the in-mango "Mango JavaScript" help. One can use that to make any changes that would be possible through the JSON emport utilities, but it's not as direct as the API. There is a script-utils endpoint that enables you to run scripts through the API.


  • Hi @JoelHaggar, @phildunlap
    Thanks for the help...

    Joel, we'd be looking to implement as soon as the feature was available :)
    If its not too much trouble, please let me know when this is ready for testing - I'd be happy to test this ahead of a production release!

    As for permissions, if you did have the ability to permit changes to event detectors separate to data points, that would give some extra security and protection from users, but it would probably be fine to give them edit permission to the data point.

    Phil, this sounds like it might be an option for us in the event that our customer requires us to have this implemented before the work Joel talks about is ready.

    Thanks
    Shaun


  • I concur, I will require this ability myself for custom alarms set by individual users for datapoints reaching certain values. Please do keep us updated.


  • Hello again gentlemen,
    Just following up on this development. Is there any further news regarding release time? Also, how do I enable the event detector api? Am running mango 3.2.2 and I cannot see the option in the swagger/index API list.

    Fox


  • Hello Mr. Fox,

    Is it possible you have the env.properties entry

    swagger.mangoApiVersion=v1

    when you could perhaps have

    swagger.mangoApiVersion=v[12]

    ? I believe an update on other things event detector related will be forthcoming.


  • That did the trick! Many thanks Mr Dunlap!


  • I definitely have adding a component to modify the event detectors on my list!


  • @MattFox @shaun

    There's now a component for getting and saving event detectors - <ma-point-event-detector>.
    Here's an example of how to use it.

    <ma-watch-list-get ng-model="designer.watchList" parameters="designer.parameters" on-points-change="designer.points = $points" id="5ea22e95-d861-4b05-ae99-0a50106bc47b" watch-list-xid="WL_ac76beaa-10f4-40f0-b714-d0fda1c1e801"></ma-watch-list-get>
    <div class="ma-designer-root" id="db465455-2b87-4245-af82-86e1bb7b0434" style="width: 1366px; height: 768px; position: relative;">
        <ma-point-value id="349d93d6-89ed-4c42-9e14-784e1e64263b" enable-popup="hide" style="position: absolute; left: 277.453px; top: 162px;" point="designer.points | filter:{name:'Voltage'}:true | maFirst"></ma-point-value>
        <ma-point-event-detector point="designer.points | filter:{name:'Voltage'}:true | maFirst" detector-type="LOW_LIMIT" alarm-level="CRITICAL" detector="criticalLowDetector"></ma-point-event-detector>
        <ma-point-event-detector point="designer.points | filter:{name:'Voltage'}:true | maFirst" detector-type="LOW_LIMIT" alarm-level="WARNING" detector="warningLowDetector"></ma-point-event-detector>
        <ma-point-event-detector point="designer.points | filter:{name:'Voltage'}:true | maFirst" detector-type="HIGH_LIMIT" alarm-level="WARNING" detector="warningHighDetector"></ma-point-event-detector>
        <ma-point-event-detector point="designer.points | filter:{name:'Voltage'}:true | maFirst" detector-type="HIGH_LIMIT" alarm-level="CRITICAL" detector="criticalHighDetector"></ma-point-event-detector>
        
        <md-input-container id="207b9fc3-d8d9-457d-b667-cc02c347f854" style="position: absolute; left: 77px; top: 110px;">
            <label>Critical low level</label>
            <input type="number" ng-model-options="{debounce: 1000}" ng-model="criticalLowDetector.limit" ng-change="criticalLowDetector.saveAndNotify();">
        </md-input-container>
        <md-input-container id="5ad3a950-d19f-4879-aed4-5d28dd70567d" style="position: absolute; left: 77px; top: 174px;">
            <label>Warning low level</label>
            <input type="number" ng-model-options="{debounce: 1000}" ng-model="warningLowDetector.limit" ng-change="warningLowDetector.saveAndNotify();">
        </md-input-container>
        <md-input-container id="5f3c58da-5323-4881-a90d-1477c72b66d1" style="position: absolute; left: 386px; top: 110px;">
            <label>Warning high level</label>
            <input type="number" ng-model-options="{debounce: 1000}" ng-model="warningHighDetector.limit" ng-change="warningHighDetector.saveAndNotify();">
        </md-input-container>
        <md-input-container id="9f82d6c8-5f53-4a72-a53e-09f54a2cf959" style="position: absolute; left: 387px; top: 174px;">
            <label>Critical high level</label>
            <input type="number" ng-model-options="{debounce: 1000}" ng-model="criticalHighDetector.limit" ng-change="criticalHighDetector.saveAndNotify();">
        </md-input-container>
    </div>
    

  • Christmas has come early, Thanks @Jared-Wiltshire! Do I need to retrieve this directive via the beta channel or is there a new update available?


  • Its a full production release. Sorry I should have mentioned.
    Its in UI v3.2.8. Also install Mango API 3.2.4.

    It will create a new point event detector when they don't exist or update an existing one with the same alarm level.


  • @jared-wiltshire Is there any way to add dynamic name of event detector using $index.

    <div ng-repeat="point in soapDispenserLevel">
          <ma-point-event-detector point="point" detector-type="LOW_LIMIT" alarm-level="DO_NOT_LOG" detector="soapDispenserLevel{{$index}}" ></ma-point-event-detector>
    </div>