A1101 Vision AI and Chirpstack

I’m using an M2 Multiplatform that runs Chirpstack V4 in local mode. Been watching the MQTT messages. The device is active but I’m having difficulty interpreting the data field.
Both. I am stuck on 2.3 and the only payload I get is mostly the MQTT message says: data: “AU8QAAAAAM0U” and object: {temp: 22.5}
The temperature probably means the chirpstack automatic measurement is having difficulty. I think that data code must mean 0.00, maybe 4 times. Does anyone recognise what code that is: I’ve tried reverting to binary and hexifying it, but guessing I need to bitshift it?

everything is encripted… i temember when FCC would not allow encripted messages over the public airwaves… we used to have a right to know stuff

It shouldn’t be anymore. This is after the Chirpstack server where it transmits MQTT, which can be encrypted but isn’t here.There is a username and password but lots of devices don’t allow encryption. Pretty sure the encryption sensor encrypts as far as the network server. I think this probably makes sense in binary once it is split into appropriate chunks. I need to read the decoders on GitHub. ANT/ANT+ is still unencrypted but as Garmin own it the use is mainly sport stuff, but you can send files and stuff. Plus it is cheap. Lots of BTLE chips could do it if they wanted.

Did you find a solution to decoding the data field in the MQTT information? Docs all refer to how to decode numeric data fields.

No, but if you use node red it turns the MQTT message into a JSON object and you can find the data within the object. Then you can use a change node to move the correct data to the main payload (because it’s surrounded by unnecessary stuff). Just turn into an object and look everywhere till you find the unencrypted measurement.

Thanks for your reply. I’ll give it a try!

If it’s a Sensecap Vision AI it’s an array of 4 numbers the last three of which may be empty. It fills them up in sequence. I knew where to look because I also have a Sensecap T1000A tracker than helpfully calls measurements ‘longditude’ etc. It also has a data field I haven’t figured out yet.

1 Like

Below is the file output by the Node Red process. It looks like JSON to me. This is the data output by a SenseCAP Temperature/Humidity sensor Model S2101.

My question for the group regards decoding the “data:”:“AQEQSlsAAAECEEzCAAAZNw==” field. Everything else in the output is readable. I have found no documentation from Seeed regarding how to decode data in this format.

{“deduplicationId”:“b7ffc736-e0ed-4530-a6d4-48aa9a496e70”,“time”:“2024-06-29T20:52:24.405889719+00:00”,“deviceInfo”:{“tenantId”:“52f14cd4-c6f1-4fbd-8f87-4025e1XXXXXX”,“tenantName”:“SenseCAP”,“applicationId”:“51f70ac6-dc69-466e-85aa-8240a5XXXXXX”,“applicationName”:“Samara_Data”,“deviceProfileId”:“1880eef6-37b2-4da9-a866-1f3298XXXXXX”,“deviceProfileName”:“SenseCAP S210X”,“deviceName”:“SenseCAP Temperature/Humidity Sensor”,“devEui”:“2cf7f1c06130XXXX”,“tags”:{}},“devAddr”:“5abe4076”,“adr”:true,“dr”:3,“fCnt”:1227,“fPort”:2,“confirmed”:true,“data”:“AQEQSlsAAAECEEzCAAAZNw==”,“rxInfo”:[{“gatewayId”:“2cf7f111531000f1”,“uplinkId”:2759578050,“rssi”:-32,“snr”:14.2,“channel”:1,“location”:{},“context”:“TgCedw==”,“metadata”:{“region_config_id”:“US_902_928_FSB_1”,“region_common_name”:“US915”},“crcStatus”:“CRC_OK”}],“txInfo”:{“frequency”:902500000,“modulation”:{“lora”:{“bandwidth”:125000,“spreadingFactor”:7,“codeRate”:“CR_4_5”}}}}

No way that is data… IMO looks like bad baud rate or something?
Not even HEX so?
My .02
GL :slight_smile: PJ :v:

I have given up on that data field. I turned it into binary and tried converting it to everything I could think of.
This is the output of my A1101 vision AI
“deduplicationId”:“9186b898-ecf6-43bb-b549-229ad28636aa”,“time”:“2024-07-09T20:26:22.247716749+00:00”,“deviceInfo”:{“tenantId”:“52f14cd4-c6f1-4fbd-8f87-4025e1d49242”,“tenantName”:“SenseCAP”,“applicationId”:“1b1e1526-1165-4151-98f3-3fcef4f89f15”,“applicationName”:“AI Vision”,“deviceProfileId”:“7dfdcbfb-a281-4522-8137-c22a6e27b7db”,“deviceProfileName”:“Vision AI”,“deviceName”:“A1101”,“devEui”:“2cf7f1c06100005f”,“tags”:{}},“devAddr”:“5a90e9d9”,“adr”:true,“dr”:5,“fCnt”:48,“fPort”:2,“confirmed”:true,“data”:“AU8QAAAAAM0U”,“object”:{“err”:0,“messages”:[{“measurementValue”:0,“type”:“report_telemetry”,“measurementId”:4175}],“payload”:“014F1000000000CD14”,“valid”:true},“rxInfo”:[{“gatewayId”:“2cf7f11053100183”,“uplinkId”:2518991824,“rssi”:-58,“snr”:14,“channel”:4,“location”:{},“context”:“ivxMFw==”,“metadata”:{“region_config_id”:“EU_863_870_TTN”,“region_common_name”:“EU868”},“crcStatus”:“CRC_OK”}],“txInfo”:{“frequency”:867300000,“modulation”:{“lora”:{“bandwidth”:125000,“spreadingFactor”:7,“codeRate”:“CR_4_5”}}}}

It is more obvious when there is a human in front of the camera but if you look after the data field there is an object. When not null it is in there. The default threshold is 50% so you get a lot of 0. My interpretation is the data field is the encrypted raw data. I don’t know why yours does not have an object. In the chirpstack interface if you click on events and then “up”is there not a temperature and humidity object? I am going to try and get the date for my Tracker and data logger in an MQTT sniffer, but can’t access chirpstack on this small screen.

1 Like

“deduplicationId”: “9118a832-b2e4-4fd7-8923-270fc6aac8ea”,
“time”: “2024-07-09T20:39:30.870908549+00:00”,
“deviceInfo”: {
“tenantId”: “52f14cd4-c6f1-4fbd-8f87-4025e1d49242”,
“tenantName”: “SenseCAP”,
“applicationId”: “f2a2f3cf-082c-40ff-9d14-5d494667d067”,
“applicationName”: “Tracker”,
“deviceProfileId”: “cc622c2b-68da-47f7-807c-86a8bae83328”,
“deviceProfileName”: " Tracker T1000-A",
“deviceName”: “T1000A”,
“devEui”: “2cf7f1c054600416”,
“tags”: {}
“devAddr”: “5b3f208e”,
“adr”: true,
“dr”: 5,
“fCnt”: 1693,
“fPort”: 5,
“confirmed”: true,
“data”: “CQAAAABmjaAA//5DnwMS6ngp”,
“object”: {
“err”: 0.0,
“valid”: true,
“payload”: “0900000000668da000fffe439f0312ea7829”,
“messages”: [
“motionId”: 0.0,
“measurementValue”: [],
“measurementId”: “4200”,
“type”: “Event Status”,
“timestamp”: 1720557568000.0
“measurementId”: “4197”,
“motionId”: 0.0,
“measurementValue”: -0.113761,
“type”: “Longitude”,
“timestamp”: 1720557568000.0
“timestamp”: 1720557568000.0,
“motionId”: 0.0,
“measurementValue”: 51.57132,
“type”: “Latitude”,
“measurementId”: “4198”
“timestamp”: 1720557568000.0,
“measurementId”: “3000”,
“motionId”: 0.0,
“measurementValue”: 41.0,
“type”: “Battery”
“rxInfo”: [
“gatewayId”: “2cf7f11053100183”,
“uplinkId”: 472168217,
“rssi”: -92,
“snr”: 14.2,
“channel”: 4,
“location”: {},
“context”: “ufx2Gg==”,
“metadata”: {
“region_config_id”: “EU_863_870_TTN”,
“region_common_name”: “EU868”
“crcStatus”: “CRC_OK”
“txInfo”: {
“frequency”: 867300000,
“modulation”: {
“lora”: {
“bandwidth”: 125000,
“spreadingFactor”: 7,
“codeRate”: “CR_4_5”
The formatting is different but can you see there is a longitude, latitude and a battery with a blank bit. The tracker can measure luminosity and temperature. It’d go there somewhere if it was on.

As regards the AI Vision the data is I think in this line:
I have a threshold of 0.33 set. I think if the first is positive it looks for a second etc, up to 4. It is an array of 4 numbers.

I think it has end to end encryption so you dont know… I am all about scurity but i dont need my arduino encrypted… what da?