Has anyone experience with Sensing Labs devices?

I see the 05D1 in the “UPLINK payload (00 F9 8E 01 9C 10 05 D1)” , but what is the exact value that this 05D1 should be converted into?

If it’s linear (is it?), then subtract 4 and multiply by 400 / (20 - 4), so: subtract 4 and multiply the result by 25?

However, I’ve not used Cayenne so no idea if one can use TTN Console payload functions to do any of that before passing it along to Cayenne. Or if one can do this in Cayenne directly.

Also, as I don’t know what the hexadecimal 0x05D1 should convert into, I cannot tell if it’s encoded LSB or MSB. (If it is sent as an integer, and is MSB, then 0x05D1 reads 1489 decimal, so maybe you first need to divide by 100 to get the mA reading? But if it’s LSB then it reads 53509 decimal, and you might need to divide by 10000 to stay within 4 and 20 mA. And all that even assumes it’s an integer to start with.)

…and maybe “suppressed” should read “represented” or something, so this may imply you need to multiply by 1/200, so: divide by 200? (1489 decimal might be 7.4 mA then?)

But as it seems you already see some data on Cayenne, I guess you already decoded that hexadecimal 0x05D1 into some mA reading between decimal 4 and 20 mA, so maybe you really only need to do the scaling for values between 4 and 20?

Hi,
Thank you for the reply!

function Decoder (bytes, port) {

// In Our case 00 F9 8E 01 9C 10 05 D1
//decoding last 2x bytes "05 D1" 
// Unit miliamper, 2x bytes Value/200ma
// Decode whole 2xbytes to %, from % to bar
// Pressure sensor from 100...400bar (0% -> 100bat and 100% -> 400bar)

var pressure  = (((bytes[6] << 8) | bytes [7]));

return pressure/200;  // Division to 200 is required if the received value was really multiplied to 200ma
}

And converter should contains conversion calculations:

function Converter(decoded, port) {
  // Merge, split or otherwise
  // mutate decoded fields.
  var conv_procents = (decoded-4)*100/16;  //convert into procents (4ma-20ma)
  var conv_bar = conv_procents*3+100; //convert to bar (100bar-400bar)

  return conv_bar;
}

Attached us the user guide.

The last two bytes are input current expressed in 1/200ma as 2 bytes unsigned MSB int.

I woukd like to use the TTN Payload formats to decode and convert the current values to bar:
Can I use this code.

Shouldn’t the cayenne widget appears with pressure values instead of current?

Cayenne_widget

Attached is the User guide of sensing Labs, concerned chapter is Uplink DATALOG FPort3.

SL_UserGuide_SenlabA-4MA-LAB-xxNS_E02-2.pdf (676.3 KB)

Thank you and
Best Regards,

I have used the TTN PAYLOAD FORMATS Decoder function to decode the last 2x bytes of Sensing Labs Uplink Data: 00 F9 8E 01 9C 10 05 D1

function Decoder (bytes, port) {
//decoding last 2x bytes “05 D1”
// Unit miliamper, 2x bytes Value/200ma
// Decode whole 2xbytes to %, from % to bar
// Pressure sensor from 100…400bar (0% -> 100bat and 100% -> 400bar)

var decoded = (((bytes[6] << 8) | bytes [7]));
var procent = ((decoded/200)-4)*100/16; //convert into procents (4ma-20ma)
var pressure = procent *3+1; //convert to bar (1bar-400bar)

return {

Barometer: pressure + ‘bar’,
};
}

Please correct me if I am wrong, should I now replace the last 4x bytes with Cayenne LPP payload format to have like: 05 73 05 D1 in order to get correct widget pressure in Cayenne Tool?

Data1 Ch (1x byte), Data1 Type (1x byte), Data1 (2x bytes)

05 = Channel ID
73 = Barometer
05 D1= current value in ma which will be decoded to pressure value as per Decoder function mentioned above.

Hey,
Noob question. How did you get your SenLab sensors activated? I got mine registered, but it says in the instructions that after registration you are redirected to the new device where you can get your app key to activate the device. How do I go about doing that?

Matt
Do you still need assistance with the Sensing Labs devices? I am now using these and have them set up, payload decoded etc and can help if needed

Regards
Rob

I’m struggling to get a SenlabH to work in TTNver3.
Anyone have a payload decoder for that one?

Using_Node -Red I could really do with a flow that works for getting data from my Senlab sensor.

Hi Hakangus,

There is an online tool to easily encode/decode all “Sensing-Labs” payloads:
https://codecs.slconnect.click
It could be useful for TEST and quick check of some payloads.

All Sensing-Labs documentation (including “how to encode/decode”) is available on https://support.sensing-labs.com
Only Sensing-Labs customers are allowed to access to this support website, so you can ask for a registration here.

To be short:

  • if your Senlab is in BASIC mode (one measure per TX), HEX decode is possible (see official documentation)
  • if your Senlab is in DATALOG mode (up to 24 measures per TX), you need to use “SLcodec” to encode/decode your payloads.
    SLCodec can be implemented as a REST API on your server, so you can send REST request from node-red (for example) to decode using SLCodec…

Thanks for your reply.
I´m not that skilled in programming so I hoped for a copy/paste decoder script for TTNver3 for my SenlabH. :wink: For all our Elsys sensors the manufactorer have the script on their website. I can´t see why Sensing Labs doeasn´t have that.

We are working on that solution :wink:!

:thinking: Shouldn’t take long to post a script to a website…?

Do you have a timeline?

Can you return and update the Forum when done/available (and please - open access not behind some registartion/licence/paywall implementation (we are all building off open source and standing on the shoulders of giants in this sector and with LoRaWAN & TTN ;-), and many of us get asked to step in and help assist struggling users with devices we would not normally use or access so having the right tools available for that process is key to improving your users experience :slight_smile: )

We are working on it … (to write and test the script in this format)

No, sorry.

I understand this and I will inform by a topic on TTN community and on this topic too, with sources and a kind of README, to make it easy for Sensing-Labs products users.

That sounds good. My Node-Red flow don´t look specially nice right now with a lot of nodes. An ordinary Javascript as a decoder on TTN would be nice. Please post here as well when done. Then it would be a easy as some of your collegues in the business!

Any news on this?

We are working on the javascript version…
We will keep you informed in this topic.

1 Like

If you don´t intend to publish any script, please be honest and say so.

We are still working on it (“JavaScript library” to decode sensing-labs payload (all modes).
It will be available within end of November 2021.
Thank you for your patience.

Hi,

Here is the package to decode Sensing-Labs devices in javascript library (Refer README for TTN integration):

  • SenabT
  • SenlabM
  • SenlabH

slcodec_js-2.0.0-obf-2021-12-27.tar.gz

Next version will be available on Sensing-Labs support website

Loïc

Thanks, lopic34!
I´ve tried it and it works fine with my SenlabH sensorns.

Is there a decoder for SenlabP on the way too?

Good to know! :smiley:

Not yet, but ask Sensing-Labs support with a ticket here
(need to be registered, if not, you can register here )

Loïc

Now there is a decoder even for SenlabP that works fine on TTN3. Thanks! Javascript found here: https://support.sensing-labs.com/hc/en-us/articles/360027722091-Changelog-and-release

1 Like