• Recent
    • Tags
    • Popular
    • Register
    • Login
    1. Home
    2. Wingnut2.0
    3. Topics

    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
    W
    Offline
    • Profile
    • Following 1
    • Followers 0
    • Topics 48
    • Posts 111
    • Groups 0

    Topics

    • W

      Disable HTTP OPTIONS method - Security

      Watching Ignoring Scheduled Pinned Locked Moved User help
      1
      0 Votes
      1 Posts
      404 Views
      No one has replied
    • W

      Modbus Publisher - Edit a DataPoint v4.4.1

      Watching Ignoring Scheduled Pinned Locked Moved User help
      5
      0 Votes
      5 Posts
      1k Views
      W
      @cwangv Agreed. I have something scribbled down about the error 'IllegalStateException: Should be in state [INITIALIZING, RUNNING], but is in state TERMINATING' appearing in the log when attempting to delete a point failed. Its almost as though the publisher isn't starting/stopping cleanly. (Only tested with modbus publisher)
    • W

      Mango API - "mangoStatusCode": 4004 on Core 4.4.1

      Watching Ignoring Scheduled Pinned Locked Moved User help
      1
      0 Votes
      1 Posts
      633 Views
      No one has replied
    • W

      ???Runtime manager not running Error when attempting JSON Configuration Import

      Watching Ignoring Scheduled Pinned Locked Moved User help
      1
      0 Votes
      1 Posts
      538 Views
      No one has replied
    • W

      Testing out the new Influx DB Line Protocol Data Source

      Watching Ignoring Scheduled Pinned Locked Moved User help
      3
      0 Votes
      3 Posts
      492 Views
      W
      Thank you, Terry. While testing, I am using the following input [[inputs.win_perf_counters.object]] # Processor usage, alternative to native, reports on a per core. ObjectName = "Processor" Instances = [""] Counters = [ "% Idle Time", "% Interrupt Time", "% Privileged Time", "% User Time", "% Processor Time", "% DPC Time", ] Measurement = "win_cpu" # Set to true to include _Total instance when querying for all (). IncludeTotal=true The message to be sent is the following win_cpu,host=LAPTOP,instance=2,objectname=Processor,source=telegraf Percent_DPC_Time=0,Percent_Idle_Time=89.79866790771484,Percent_Interrupt_Time=0,Percent_Privileged_Time=0,Percent_Processor_Time=3.9585533142089844,Percent_User_Time=3.098111152648926 1604960081000000000 What is making it to Mango ends up looking like this [image: uQVQ4v7.png] Along with some additional errors for points that failed to be created. 'test_Influx': Failed creating point with field key ²—‚ œ±þÞÑE€d7ˆF}Ñú¢ªÓU™çœÌâï£ÉŤZ >Mç‹Ów?œýò׳?üã¯gÿŒïß¼Œ&óÅprYžo¯‡ÇÕùɏ‹OÕ¬~`úñ?«ËÅdø¥:ý¹Zü>}>?ùódQÍþ>¼¬óéíì²:]Tãêz6üûÉÙðòsµ˜_|¨&‹‹›j6¯.Oaðí×÷Õe5ú­ººx;š_gWÕÕÆÅ¿Þ.>No'ÍïŸüq6›ÎæMÝ_ùÓ×EµñÄý(V¿?3²oWNÐ@ÒPáÛ¿¨Aœÿ>¼yÅ‹_¦‹áx¹³áõhr}~òÓhÜ€Y5»¬õë|x]zd¶PrvmÊåÍí3¡ƒ˜M/«ù|:kÁý¿Œ¾T§’$T-ƒ‰ßî|{öfuÜÿôç«qµú-¢°cH‚hØú–zÝÌnoŸ because name -> Cannot be longer than 255 characters I do have Treat integers as Numeric types checked but seem to keep getting NumberFormatExceptions and Invalid Line Length errors. Can Mango only handle a single value being sent at a time? Thank you.
    • W

      ReferenceError on Meta Data Source script

      Watching Ignoring Scheduled Pinned Locked Moved User help
      7
      0 Votes
      7 Posts
      2k Views
      W
      Thank you @terrypacker. I had a global script using $EXEC Once I removed that the script would execute.
    • W

      Issue after using Install script for Linux and Mac

      Watching Ignoring Scheduled Pinned Locked Moved User help
      2
      0 Votes
      2 Posts
      823 Views
      MattFoxM
      I'd follow this version, it's more manual and involved, but will allow you to check your install step by step https://help.infiniteautomation.com/linux-installation Fox
    • W

      Simple Ping Monitor

      Watching Ignoring Scheduled Pinned Locked Moved How-To
      11
      0 Votes
      11 Posts
      3k Views
      phildunlapP
      You're welcome!
    • W

      Are event messages available in scripts?

      Watching Ignoring Scheduled Pinned Locked Moved How-To
      6
      0 Votes
      6 Posts
      2k Views
      phildunlapP
      In 3.6 security was added to scripts to ensure that only a script with superadmin permissions could invoke Java code. That's probably what you're seeing.
    • W

      MangoES w/USB Ethernet Adapter

      Watching Ignoring Scheduled Pinned Locked Moved User help
      8
      0 Votes
      8 Posts
      2k Views
      W
      The device identifier at the beginning of the error line was mmcblk0: I wont be able to do any additional testing until tomorrow, but I did test this on another mangoES and received the same results. I believe both tests were using the vertical USB port next to the RJ45 Ethernet port.
    • W

      Using XID Prefix with PTCP Publishers

      Watching Ignoring Scheduled Pinned Locked Moved User help
      5
      0 Votes
      5 Posts
      1k Views
      W
      Thanks again Phillip. Both examples are very helpful.
    • W

      Heartbeat for Cloud Connect Clients

      Watching Ignoring Scheduled Pinned Locked Moved User help
      10
      0 Votes
      10 Posts
      2k Views
      phildunlapP
      Hi Wingnut2.0, Maybe someone else can think of a way to go through the API (I think it may be possible with some serious HTTP / WS encoding shenanigans through a Serial Data source connected to the API via a serial-tcp virtual port... not straightforward!), but through a scripting data source...... Write a wrapper for the UserEventListener interface that we can instantiate and pass functions to from the script, package com.infiniteautomation.forumexample; import com.serotonin.m2m2.rt.event.UserEventListener; import com.serotonin.m2m2.rt.event.EventInstance; /* * @author Phillip Dunlap * This class exists because Nashorn JavaScript functions can be implicitly cast to interfaces with one * method. So, we need to separate the one UserEventListener interface into four interfaces. */ public class ScriptableUserEventListener implements UserEventListener { private RaisedHandler raisedHandler = null; private RtnHandler rtnHandler = null; private DeactivatedHandler deactivatedHandler = null; private AckHandler ackHandler = null; @Override public int getUserId() { //Because not all events go to all users, we need to pretend to be a part of the message relay structure // so that we get all the messages // TODO permit script to set the user id //private, but the value we want to return //return com.serotonin.m2m2.rt.event.UserEventMulticaster.MULTICASTER_ID; // == -100 //This will make it hard / impossible to remove this listener, which means we should hit validate with // care. Probably the right thing to do here would be create a new superadmin user (or lesser privilege I guess) // for the script to present the ID of, and just never let anyone log in as that user. Then we can mash the remove // for that ID without worrying about messing things up for anyone (not like with -100 !!!) return -100; } @Override public void raised(EventInstance evt) { if(raisedHandler != null) raisedHandler.raised(evt); } public interface RaisedHandler { public void raised(EventInstance evt); } public void registerRaisedHandler(RaisedHandler raisedHandler) { this.raisedHandler = raisedHandler; } @Override public void returnToNormal(EventInstance evt) { if(rtnHandler != null) rtnHandler.rtn(evt); } public interface RtnHandler { public void rtn(EventInstance evt); } public void registerRtnHandler(RtnHandler rtnHandler) { this.rtnHandler = rtnHandler; } @Override public void deactivated(EventInstance evt) { if(deactivatedHandler != null) deactivatedHandler.deactivated(evt); } public interface DeactivatedHandler { public void deactivated(EventInstance evt); } public void registerDeactivatedHandler(DeactivatedHandler deactivatedHandler) { this.deactivatedHandler = deactivatedHandler; } @Override public void acknowledged(EventInstance evt) { if(ackHandler != null) ackHandler.ack(evt); } public interface AckHandler { public void ack(EventInstance evt); } public void registerAckHandler(AckHandler ackHandler) { this.ackHandler = ackHandler; } } Compile. I found this easiest to do by placing the ScriptableUserEventListener.java file into Mango/web/modules/dataFile/web/CompilingGrounds/Poll directory, then create a new data file data source and hit the compile button. Now you should have a com/infiniteautomation/forumexample set of directories in Mango/web/modules/dataFile/web/templates/Poll. Copy the com directory and the folders / files beneath it to Mango/overrides/classes/ (no need to restart) Write a scripting data source to register the listener, like, if(typeof registered === 'undefined') { var scriptableUserEventListener = new com.infiniteautomation.forumexample.ScriptableUserEventListener(); var raisedFunc = function(event) { p.set(event.getMessage().translate(com.serotonin.m2m2.Common.getTranslations())); }; var rtnFunc = function(event) { p.set(event.getRtnMessage().translate(com.serotonin.m2m2.Common.getTranslations())); }; scriptableUserEventListener.registerRaisedHandler(raisedFunc); scriptableUserEventListener.registerRtnHandler(rtnFunc); //could also register for deactivated or acknowledged events com.serotonin.m2m2.Common.eventManager.addUserEventListener(scriptableUserEventListener); registered = true; //print("registered"); } //The big flaw here is that the listener cannot be removed because we // will lose the object when the script is disabled. To prevent that, we could // make the script try to load the listener from the attributes map of the alphanumeric // point. And then only create it if the listener doesn't already exist. If it does // exist, the script need not do anything! And, if one wished to remove the listener, // one could pass the object returned from getting the attribute to the // com.serotonin.m2m2.Common.eventManager.removeUserEventListener( CONTEXT_POINTS.p.getAttribute("scriptableListener" ) ); // but for this example c'est la vie. I can fix / test that if need be. And voila! Some clumsiness is that the alphanumeric point couldn't store values for two events at the same time, but it should still generate updates/events even if there are two values at the same millisecond. Also there are comments about the potential clumsiness in the solution. I could do another pass and clean that up if need be...
    • W

      Cloud Connect - 401 & 403 Errors

      Watching Ignoring Scheduled Pinned Locked Moved User help
      11
      0 Votes
      11 Posts
      2k Views
      Jared WiltshireJ
      By default the client should forward port 22 for SSH which you will need to change to 2222 for a MangoES yes. The web port should default to forwarding the non-SSL web port from the env.properties file however.
    • W

      Cloud Connect - Unable to Generate New Key on Client

      Watching Ignoring Scheduled Pinned Locked Moved User help
      4
      0 Votes
      4 Posts
      1k Views
      W
      Hey Phillip, If you inadvertently have both the client and server set to start with Mango and cause Mango to restart neither the client or server will have public keys available. You will also see CloudConnectServer errors in the logs for bind exception.
    • W

      Error when attempting SNMP SET

      Watching Ignoring Scheduled Pinned Locked Moved User help
      6
      0 Votes
      6 Posts
      2k Views
      J
      @phildunlap I installed version 3.4.1 and works perfect! Thank you.
    • W

      BACnetErrorException: property: missing-required-parameter

      Watching Ignoring Scheduled Pinned Locked Moved User help
      2
      0 Votes
      2 Posts
      1k Views
      terrypackerT
      The BACnet4J 4.1.6 Release was only to update the build system and did not effect the performance of the library. We are currently in development of 4.1.7-SNAPSHOT which should be released as 4.1.7 by the end of August. So basically you aren't missing out on any features that have been released by using version 4.1.5 As for your problem, it looks like the new device is sending a message that BACnet4J doesn't understand. This is causing the Transport layer to reject it when it tries to process it. I suggest that you start by getting a Wireshark capture of the messages the new device is sending to Mango, specifically the Unconfirmed COV Notification Requests as they look to be malformed.
    • W

      Syncing Tags from PTCP Publisher to Receiver

      Watching Ignoring Scheduled Pinned Locked Moved User help
      2
      0 Votes
      2 Posts
      762 Views
      W
      Solved - Accept point attribute updates must be enabled on the receiving data source.
    • W

      Use Watchlist to query for multiple datapoint History

      Watching Ignoring Scheduled Pinned Locked Moved User help
      6
      0 Votes
      6 Posts
      2k Views
      Jared WiltshireJ
      @wingnut2-0 said in Use Watchlist to query for multiple datapoint History: are you referring to :8080/ui/watch-list/ Yes.
    • W

      Adding Extra tags via PTCP Publisher breaks connection

      Watching Ignoring Scheduled Pinned Locked Moved User help
      6
      0 Votes
      6 Posts
      2k Views
      W
      Thank you, Phillip - Working now.
    • W

      Assigning Event Handler (Set Point) output to multiple targets

      Watching Ignoring Scheduled Pinned Locked Moved User help
      4
      0 Votes
      4 Posts
      1k Views
      phildunlapP
      That enables one to handle multiple event types with the same event handler, not only point event detector event types. There is not a way through the UI to configure that sort of situation yet, but you can import it already and it'll work. It would be many-events-to-single-handler instead of single-handler-to-many-points. Looping over points and using the set() function is the only way to set multiple values from a set point handler. You can still construct the context (which should work automatically with the snippet I shared) through JSON via the "additionalContext" property of the set point handler.