[Solved] Lost access to data even though I didn't change anything

Hi,

This is my first post so I’m pretty new to Losant however I have been testing some things that have worked for over a few months now and I thought it was stable. I was away for about 3 weeks and when I came back the pressure reading that I had in my dashboards all displayed the number 4. These readings should have been between 80 - 1000. When I went into my “HTTP” Get in my workflow I noticed while doing a debug that they data wasn’t being pulled like it use to. I put the exact same HTTP Get into a web browser and all the data is retrieved and displayed. I’m at a loss. Any suggestions?

Thanks

/applications/:applicationId
/dashboards/:dashboardId
/applications/:applicationId/devices/:deviceId
/applications/:applicationId/workflows/:workflowId

IDs can be safely shared, but never share an access key or access secret.

Hi John, and welcome to the Losant forums.

I took a look in your account and found the application in question. Like you said, I was able to ping the URL in your HTTP node in a browser and get the XML response. I haven’t seen a payload move through your workflow yet but given what I can see so far, I have two theories:

  1. You are pulling values off of this payload via array index (e.g. setting state values using templates such as {{Mejo4.body.list.[335].value}}. It is possible that the format of the response from your server has changed and what you previously expected to be at index 335 is no longer there.
  2. Something else has gone wrong at the endpoint you’re using to populate this state data, and it is simply reporting a 4 instead of the expected value.

Unfortunately in both cases, there isn’t much we can do to debug because both are dependent on sources outside of the Losant platform. If the first case is your problem, you may want to target these properties some way other than by index. The HTML/XML Parser Node would be a good place to start - run the result of the payload through this first and convert the value to JSON format, and then you may have some other way of targeting the data you seek out of the response.

Hope this helps. Let us know if you have any other questions!

1 Like

Dylan,

Thanks for your response and although I am very new to this i actually understand what you are saying in regards to item 1 and 2. In the workflow I installed a debug to determine if the information was actually being pulled from the remote location and it wasn’t. I then copied the exact http get that I had in Losant to my web browser and all the data gets pulled and is there. What i don’t understand is that nothing changed, 28 days ago it was working, came back to verify something and noticed it wasn’t working. Thanks for your help.

Could you paste the output of the debug log after one of these requests is made? Make sure to redact any sensitive information that may be in the payload before doing so. Thanks.

I do see one problem; not sure if this is the original issue or if you had recently changed this for debugging purposes -

You are storing the response of the HTTP request at the payload path Mejo4a but attempting to set state values referencing Mejo4

Hi Dylan,

Here is the screenshot of when it all stopped working: Somewhere betwee May 11th and May 12 everything just stopped. Not sure if that helps.

image

Again, no modifications were made.

Okay, so I found that the information pulled was modified by 1 and that caused the bad readings. I made the fix in the configuration and that fixed one dashboard however the other dashboard Mejo 4/4D is still reading the old readings of 4.

If you look at the gauges in your screenshot, you’ll see that the values are from the last time the device reported state - which was 3 days ago.

In this screenshot from your device’s recent state log, you’ll see it hasn’t reported any values since 5/26/2019.

As I pointed out yesterday, your workflow has two Device State nodes that are referencing values at a payload path starting with Mejo4 (side note, the first of the nodes actually has one value that is not wrapped in template tags and thus will not work correctly); however, you are storing the response from your HTTP node at Mejo4a.

So when the Device State node goes to look up the values at, for example, {{Mejo4.body.list.[396].value}}, it is finding nothing there and thus is not reporting any state data. That’s why your device hasn’t recorded state in 3 days and that’s why all of your dashboards are printing out “4” values - because those were the values from the last time the workflow worked correctly.

You need to either change the Device: State attribute references to {{Mejo4a.body.list.[396].value}} or change the HTTP node to store the response at the payload path Mejo4.

As for no changes being made, I don’t have any audit logs on your sandbox to tell if updates were applied to the dashboard or the workflow so unfortunately I don’t have any insight there.

Dylan,

Thanks for you assistance here, like i said before I am very new to this and not sure I understand everything you are saying. I’m not a programmer and just used some videos and played around but this use to work great. No all of a sudden it’s not. I went into the the values and noticed they were off by 1, for example the {{Mejo4.body.list.[336].value}} was {{Mejo4.body.list.[335].value}} 239.31 showed 4 which was the wrong reading. I am thinking the web repository added a row thus messing up my number pull sequence. But the issue now is even though I have fixed the Device state, the dashboard is still pulling the “4” reading for Mejo, and is flip flopping the right number and the “4” reading for Dibi. I’m at a loss.

Okay, it would really help if i actually looked at your attached picture. I have now made that change and will see if that fixed my dashboard. Sorry that was stupid… Hope this fixes it but it now makes sense as to why it wasn’t working.

Yup, that fixed it… man do i feel dumb… thanks…

No worries! I’ve made the same mistake plenty of times. Glad to hear we got the issue resolved.

If I wanted to monitor between 100-300 devices, how would I be able to do that using Losant?

Would you mind looking at my Dibi9 workflow, the dashboard is cycling back and forth between the real data and the wrong data.

They both seem to be working now. :slight_smile:

John, just to clarify, do you have everything squared away now between the workflow and the dashboard?

As for monitoring 100 to 300 devices, the platform can absolutely accommodate that plus many more. I would recommend reaching out to our team to discuss your application in more detail. Note that managing that number of devices will require a paid subscription to the platform.

Thanks.

Was curious what the cost would be

Thanks

John

Cost depends on a number of factors:

  • Number of registered devices
  • Number of payloads those devices are producing every month
  • Data retention time
  • Cloud vs. on-prem installation
  • Engagement with our in-house solutions team

I’ll have somebody reach out to you to discuss. Thanks.