• 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

    BacNet IP not connected

    Mango Automation general Discussion
    4
    9
    2.9k
    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.
    • L
      leoboeng
      last edited by

      Hello, I'm starting to mess with BacNet IP devices and I'm facing some problems.

      In the part of Backnet Local Devices I put the IP of the Linux server that is running the Mango (192.168.0.23)

      0_1533317127020_666.PNG

      So I went to configure Data Soucer but it does not connect and does not find the points

      0_1533317112337_777.PNG

      I tried both with the ip of the server mango (192.168.0.23) and the Ip of the BacNet-enabled device (182.168.0.241) and neither of them connected.

      Following is information from my Bacnet device:

      0_1533317101547_888.PNG

      1 Reply Last reply Reply Quote 0
      • JoelHaggarJ
        JoelHaggar
        last edited by

        I'm pretty sure you want your local bind address to be 0.0.0.0, did you try that?

        1 Reply Last reply Reply Quote 0
        • L
          leoboeng
          last edited by leoboeng

          ok thank you, I tried with all but 0.0.0.0.

          I started to mess with bacnet now and I'm kind of lost, but thank you !!

          Would not it be possible to pull the value of a TrendLog type variable?

          0_1533319579683_999.PNG

          L 1 Reply Last reply Reply Quote 0
          • L
            leoboeng @leoboeng
            last edited by

            @leoboeng Any suggestion ?

            1 Reply Last reply Reply Quote 0
            • CraigWebC
              CraigWeb
              last edited by

              Did setting the local device address to 0.0.0.0 fix your connectivity problems ?

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

                This post is deleted!
                1 Reply Last reply Reply Quote 0
                • phildunlapP
                  phildunlap
                  last edited by phildunlap

                  @leoboeng

                  Mango does not support polling Trend Log points as one would an analog value. You can probably read any property on those objects, either through the API (takes some effort) or through a scripting data source (get the local device, figure out from the BACnet4J code how to send read property requests)..

                  What property would you be trying to read from a trend log object? They do not have a 'presentValue' property like the other readable points do.

                  1 Reply Last reply Reply Quote 0
                  • L
                    leoboeng
                    last edited by

                    It would be to read device historical values. It does not present "presentValue" for some data types.

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

                      You want to read the logBuffer property, I guess.

                      I didn't test this script (I don't have a BACnet device with a trend log on hand), but I adapted it from this thread to print the LogRecord objects in the 'logBuffer' property of Trend Log object number 1: https://forum.infiniteautomation.com/topic/3117/bacnet-scheduler

                      //Get the local device config from a configured bacnet data source.
                      //Edit DS XID
                      var localDeviceConfig = com.serotonin.m2m2.db.dao.DataSourceDao.instance.getByXid("DS_354e2188-4867-431b-9051-bca39b011ed7").getLocalDeviceConfig();
                      localDeviceConfig = com.serotonin.ma.bacnet.device.LocalDeviceDwr.getLocalDevice(localDeviceConfig);
                      var listener = new com.serotonin.ma.bacnet.ScriptableDeviceEventListener();
                      
                      listener.registerListenerExceptionHandler( function(excp) { print("Listener Exception"); });
                      listener.registerIAmReceivedHandler( function(removeDevice) {print("Remote device");});
                      listener.registerAllowPropertyWriteHandler( function(from, obj, pv) {print("Allow property write");});
                      listener.registerPropertyWrittenHandler( function(from, obj, pv) {print("Property written");});
                      listener.registerIHaveReceivedHandler( function(removeDevice, removeObject) {print("I have received");});
                      listener.registerCovNotificationReceivedHandler( function(subIdentifier, initDeviceIdentifier, monitoredObjectIdentifier,
                      	timeRemaining, listOfValues) {print("COV notification");});
                      listener.registerEventNotificationReceivedHandler( function(processIdentifier, initDeviceIdentifier, eventObjectIdentifier, timestamp,
                      	notificationClass, priority, eventType, messageText, notifyType, ackRequired, fromState, toState, eventValues) 
                      	{print("Register event notification received");});
                      listener.registerTextMessageReceivedHandler( function(textMessageSourceDevice, messageClass, messagePriority, message) 
                          {print("Text message received");});
                      listener.registerSynchronizeTimeHandler( function(from, dateTime, utc) {print("Sync time received");});
                      listener.registerRequestReceivedHandler( function(from, service) {print("Request received");});
                      
                      var localDevice = com.serotonin.ma.bacnet.device.LocalDeviceFactory.getLocalDevice(localDeviceConfig, listener);
                      //print(localDevice);
                      
                      try {
                          //Create the read request... See com.serotonin.bacnet4j.type.enumerated.ObjectType for object types
                          var objectIdentifier = new com.serotonin.bacnet4j.type.primitive.ObjectIdentifier(com.serotonin.bacnet4j.type.enumerated.ObjectType.trend    Log, 1); //EDIT: object instance number
                          var propertyIdentifier = com.serotonin.bacnet4j.type.enumerated.PropertyIdentifier.logBuffer;
                          var readRequest = new com.serotonin.bacnet4j.service.confirmed.ReadPropertyRequest(objectIdentifier, propertyIdentifier);
                      
                          //Get the remote device and send the request, edit the remote device number
                          var remoteDevice = localDevice.getRemoteDeviceBlocking(123);
                      
                          var result = localDevice.send(remoteDevice, readRequest).get();
                      	//result should be a read service ack that we can hopefully get a com.serotonin.bacnet4j.type.constructed.BACnetArray of com.serotonin.bacnet4j.type.constructed.LogRecord from
                      	var logRecords = result.getValue(); //now iterate this list and do what
                      	for(var k = 0; k < logRecords.size(); k+=1) {
                      		print(logRecords.get(k).toString());
                      	}
                      } finally {
                          com.serotonin.ma.bacnet.device.LocalDeviceFactory.releaseLocalDevice(localDevice, listener);
                      }
                      

                      You may need to edit the data source xid, object instance number, and remote device id, as noted in the comments.

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