TAGO Q + A topic

tago-rising

new 'Payload Parser

New LoRaWAN™ device integration: Tektelic & TagoIO

databackup

Hi, I am trying to connect a Tektelic All in One PIR homesensor via the TAGO TTN integration to Tago but I struggle to get suitable variables created in my buckets. I can see only three variables appearing in my buckets [ttn_payload, downlink_log, downlink_url]. The ttn payload provides me with a full TTN packet including all the metadata but I am only interested in the payload fields. I thought a connector would do most of the job for me but it seems I need to do all parsing from the ttn_payload all by myself. Not sure what the point of a LoRa device specifc connector is. Also i cannot seem to exclude variables from the buckets with custom parse code. eg/ const ignore_vars=[“downlink_log”,“downlink_url”]; - any advice or help how I should parse the payload or configure the connector to properly work? Many thanks

Also I can’t exclude

Do you have a decoder set in the console (in the application area)?

videowidget

Hi, sorry did not realise you responded to my request - i assume you mean decoder in the TTN console for the device? If so I tried both - with and without

I have tried to use this one: https://github.com/SensationalSystems/tektelic-kona-decoder/blob/master/tektelic-kona-home-ttn-decoder.js

But my problem still remains as I get a pretty big ttn_payload to wrangle with on the Tago side.

Is there anything I can do to make sure I only receive “payload_fields” on the Tago side?

{“app_id”:“tektelic-home-pir-1”,“dev_id”:“kona-home-1”,“hardware_serial”:“647FDA00000010F0”,“port”:10,“counter”:340,“payload_raw”:“0100FF08040002”,“payload_fields”:{“activity”:null,“battery_voltage”:null,“bytes”:“AQD/CAQAAg==”,“external_input”:null,“humidity”:null,“reed_count”:2,“reed_state”:false,“temperature”:null},“metadata”:{“time”:“2019-02-12T22:19:56.226659896Z”,“frequency”:868.3,“modulation”:“LORA”,“data_rate”:“SF12BW125”,“coding_rate”:“4/5”,“gateways”:[{“gtw_id”:“multitech_home”,“gtw_trusted”:true,“timestamp”:3305545796,“time”:“2019-02-12T22:41:20Z”,“channel”:1,“rssi”:-48,“snr”:12.25,“rf_chain”:1,“latitude”:xxxx,“longitude”:-xxx,“location_source”:“registry”}]}}

Big, but are you seeing individual fields? Because in my tests with Tago, among the variables I can see both metadata and payload fields (and I am happy with this, because it lets me work also on RSSI and SNR). It should not be an issue to have more than (currently) needed…

OK given I have a such a big payload, how do I write a parser for Tago that get me the information in the ‘payload_fields’ “payload_fields” element of this big overall payload? I
am interested in this element: ,“payload_fields”:{“activity”:null,“battery_voltage”:null,“bytes”:“AQD/CAQAAg==”,“external_input”:null,“humidity”:null,“reed_count”:2,“reed_state”:false,“temperature”:null}

If I through the whole payload into your device emulator to test a parser I get a long list of error messages:
-Missing property “variable”.
-Property “port” is not allowed.
-Property “counter” is not allowed.
-Property “payload_fields” is not allowed.
-Property “metadata” is not allowed.
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Value expected
-Property keys must be doublequoted
-Value expected

I am not from Tago, just a user. What I did is simply to add integration, add devices and buckets into Tago, create a dashboard, and there variables are directly shown.
However, your JSON has non standard double quotes.

thanks for your support - I really thought you were working for Tago -:blush:-

how did you create buckets so that variables are simply there? I currently get only three variables into my buckets from the integration which are downlink_log, downlink_url, ttn_payload.

Do you create a special parser for Tago to analyse the ttn_payload variable?

I did recently a test with Tago, but everything went so flawlessly that I cannot remember difficulties. I followed these instructions, using Custom TTN device because it is not a commercial node. I found Tago easier than Cayenne.
I stopped using it because suddenly I saturated the maximum input limit (in an unclear way, but I just stopped everything).

newwidgetconfiguration

Did you guys ever get down-links working with TTN?

I just tried it again today and still can’t seem to get it to work. Nothing shows up in my TTN console and nothing gets to my device – down-links work on my device when I use the HTTP integration and use curl from my desktop PC to send the data…so I know the code on my device is fine.

Everything else I’ve tried on Tago works perfectly, so it could be user error on my part.

This is what I’m trying to send:
image

Downlinks used show up in my TTN console on fport 0(they don’t any longer for some reason) but the payload is empty every time, whether I use payload_fields or payload_raw.

It’s also very non-intuitive how to actually send downlinks. The “Was it Sent” tab is really ambiguous even after you read the information tab.

Do you enable “Was it Sent” because you want it to be sent or disable it because it was sent.

When you’re creating a new key and value pair, you’d click the button because intuitively that’s how you expect things to work but that will disable the downlink. I spent a TON of time trying to get downlinks to send my payload, then I just gave up :smirk:

Once it works it would be nice to specify with fport it comes in on as well.

I had pretty much the same experience – spent a long time trying to get it to work with payload_fields and payload_raw with no success.

I also agree that sending downlinks with Tago is very unintuitive. I don’t understand why the feature is hidden away in the device configuration and why it’s structured as it is. To me, what 99% of people want to do with downlinks is send a simple message of some sort back to their device, in response to a timer or button click on the GUI or whatever. In my mind when you are creating the GUI and you add a button for example, you should be able to attach some sort of a callback function to the button that just queues whatever data you want to send back to the device, so that it’s sent on the next uplink.

2 Likes

tago21-3

As @ZaneL says, we have the same issue, we want a simple dashboard where we can add a botton to on/off or start stop a sensor, it is a very simple message but we want to be integrated on the visualized data.
any suggestion how to do this?

tago-balloontracking