Hi,
I decied to give this a try so I added Nodered to my HA instance. I copied the first Nodered flow and tried to adapt it to my system but I don't now what I'm supposed to do then, especially, how to troubleshoot.
My setup is different from yours as I'm not using SenseCAP portal, I'm using my LoRa Gateway as a Application Server (chirpstack), which seems to completely support mqtt as my HA and Traccar are perfectly receiving messages, locations, etc.....
Please help me, I'm not a dev guy.
Thanks
Hi all,
I managed to get both flow (approximately) working.
When I test using your ingest nodes, I can see the flow going on, it even pass the data to the second flow.
I still have 2 issues : if I don't use ingest nodes, nothing happens (despite the fact I can see some data arriving from my input), and I can't upload data to traccar yet.
On the second flow, If I put a debug node just before the last sep, I can see this :{"timestamp":1742752239000,"id":"2CF7F1C064900884","lon":2.1133012,"lat":48.8911265,"hdop":1000,"altitude":28.89839172363281}
But if I put a debug node at the end, I can see an empty string[0].
Before you ask, yes I setup everything as you said : googleToken (REDACTED), host (http://192.168.4.8
) ans portOsmand (5055).
Can you please help me troubleshoot ?
Hi,
Finally, I managed to get both flow working fine with your ingests nodes. Traccar receives the updated coordinates no problem.
My issue now is I need to adapt your input node as I don't connect to SenseCAP Portal but to my own Gateway. I believe the message I receive from my gateway is not formatted properly as per your node expectations which cause the flow to fail.
Can you please help me adapt your flows to my use case ? Find below the message I receive from my Gateway :
{"deduplicationId":"aa88bfac-281e-4a41-a527-4b7686133bd0","time":"2025-03-24T07:56:13.032311115+00:00","deviceInfo":{"tenantId":"52f14cd4-c6f1-4fbd-8f87-4025e1d49242","tenantName":"SenseCAP","applicationId":"053edc9b-4c47-4a2f-b0e8-414dacbada7a","applicationName":"Home Assistant","deviceProfileId":"3c6aa0b4-11cd-4a2d-abaa-6b3eb3e7edbf","deviceProfileName":"Tracker","deviceName":"Tracker Anaïs","devEui":"2cf7f1c064900884","tags":{}},"devAddr":"01235505","adr":true,"dr":5,"fCnt":230,"fPort":5,"confirmed":true,"data":"BwAAAABn4RAcniVKLbJQ0Gg/fckIQMGYJUotslDN1PgpsyswqAD8ABNV","object":{"err":0,"messages":[[{"measurementId":"4200","timestamp":1742802972000,"type":"Event Status","measurementValue":[],"motionId":0},{"measurementId":"5001","motionId":0,"timestamp":1742802972000,"measurementValue":[{"mac":"9E:25:4A:2D:B2:50","rssi":-48},{"rssi":-63,"mac":"68:3F:7D:C9:08:40"},{"rssi":-51,"mac":"98:25:4A:2D:B2:50"},{"rssi":-88,"mac":"D4:F8:29:B3:2B:30"}],"type":"Wi-Fi Scan"},{"motionId":0,"timestamp":1742802972000,"measurementValue":25.2,"type":"Air Temperature","measurementId":"4097"},{"type":"Light","measurementId":"4199","motionId":0,"measurementValue":19,"timestamp":1742802972000},{"measurementValue":85,"timestamp":1742802972000,"motionId":0,"type":"Battery","measurementId":"3000"}]],"payload":"070000000067e1101c9e254a2db250d0683f7dc90840c198254a2db250cdd4f829b32b30a800fc001355","valid":true},"rxInfo":[{"gatewayId":"2cf7f110626000a2","uplinkId":3814072001,"rssi":-34,"snr":15.5,"channel":7,"location":{"latitude":48.89110415553951,"longitude":2.113258838653565},"context":"v9jCHQ==","metadata":{"region_config_id":"EU_863_870_TTN","region_common_name":"EU868"},"crcStatus":"CRC_OK"}],"txInfo":{"frequency":867900000,"modulation":{"lora":{"bandwidth":125000,"spreadingFactor":7,"codeRate":"CR_4_5"}}}}
Apparently you get the "MeasurementID" in the topic of your message and I don't, so I tried to adapt the code froml the following nodes, I managed to get it "working" until "Set data, considerIp and URL" and then it fails, it can't build the JSON to send to Google API................
Hi,
For those who will be looking for this in the future, please find below a copy of axelIT's post I adapted to be used with a local SenseCAP M2 Gateway.
[
{
"id": "590bedf68e85d2d7",
"type": "tab",
"label": "SenseCAP Template",
"disabled": false,
"info": ""
},
{
"id": "e82bae9cbb5c22d3",
"type": "mqtt in",
"z": "590bedf68e85d2d7",
"name": "SenseCAP M2 Gateway",
"topic": "application/YOUR_CHRIPSTACK_APPLICATION_ID/device/#",
"qos": "2",
"datatype": "auto-detect",
"broker": "270bf66dda334b51",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 150,
"y": 200,
"wires": [
[
"c164f739d2660d91",
"b57017d2022f033c",
"9a8bb73acdb2589c"
]
]
},
{
"id": "e3f25e740ee5d751",
"type": "switch",
"z": "590bedf68e85d2d7",
"name": "Lon - Lat - WiFi",
"property": "payload.measureId",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "4197",
"vt": "num"
},
{
"t": "eq",
"v": "4198",
"vt": "num"
},
{
"t": "eq",
"v": "5001",
"vt": "num"
}
],
"checkall": "true",
"repair": false,
"outputs": 3,
"x": 960,
"y": 160,
"wires": [
[
"0ad1bd90272e1e4e"
],
[
"ed8ea08363877a9c"
],
[
"9672eb4d6458c89f"
]
]
},
{
"id": "0ad1bd90272e1e4e",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "",
"rules": [
{
"t": "set",
"p": "parts.index",
"pt": "msg",
"to": "0",
"tot": "num"
},
{
"t": "set",
"p": "parts.count",
"pt": "msg",
"to": "2",
"tot": "num"
},
{
"t": "set",
"p": "parts.id",
"pt": "msg",
"to": "msg.payload.deviceId & msg.payload.timestamp",
"tot": "jsonata"
},
{
"t": "move",
"p": "payload.battery",
"pt": "msg",
"to": "data.battery",
"tot": "msg"
},
{
"t": "move",
"p": "payload.deviceId",
"pt": "msg",
"to": "data.id",
"tot": "msg"
},
{
"t": "move",
"p": "payload.timestamp",
"pt": "msg",
"to": "data.timestamp",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1300,
"y": 60,
"wires": [
[
"ac0bc64b755e5980"
]
]
},
{
"id": "ed8ea08363877a9c",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "",
"rules": [
{
"t": "set",
"p": "parts.index",
"pt": "msg",
"to": "1",
"tot": "num"
},
{
"t": "set",
"p": "parts.count",
"pt": "msg",
"to": "2",
"tot": "num"
},
{
"t": "set",
"p": "parts.id",
"pt": "msg",
"to": "msg.payload.deviceId & msg.payload.timestamp",
"tot": "jsonata"
},
{
"t": "move",
"p": "payload.battery",
"pt": "msg",
"to": "data.battery",
"tot": "msg"
},
{
"t": "move",
"p": "payload.deviceId",
"pt": "msg",
"to": "data.id",
"tot": "msg"
},
{
"t": "move",
"p": "payload.timestamp",
"pt": "msg",
"to": "data.timestamp",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1300,
"y": 160,
"wires": [
[
"ac0bc64b755e5980"
]
]
},
{
"id": "ac0bc64b755e5980",
"type": "join",
"z": "590bedf68e85d2d7",
"name": "",
"mode": "auto",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"useparts": true,
"accumulate": true,
"timeout": "",
"count": "",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 1530,
"y": 160,
"wires": [
[
"162d60fed6c3c219"
]
]
},
{
"id": "c722e31e2b6e91ed",
"type": "mqtt out",
"z": "590bedf68e85d2d7",
"name": "",
"topic": "/tracking/add",
"qos": "",
"retain": "",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "35fd3a139e459f2a",
"x": 3410,
"y": 80,
"wires": []
},
{
"id": "7e26671f8bfec835",
"type": "http request",
"z": "590bedf68e85d2d7",
"name": "Get location from WiFi",
"method": "POST",
"ret": "obj",
"paytoqs": "ignore",
"url": "",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 2020,
"y": 320,
"wires": [
[
"621eb5641b04ac3e"
]
]
},
{
"id": "39ab0ee97a8c3eb5",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Replace property names",
"rules": [
{
"t": "change",
"p": "payload",
"pt": "msg",
"from": "mac",
"fromt": "str",
"to": "macAddress",
"tot": "str"
},
{
"t": "change",
"p": "payload",
"pt": "msg",
"from": "rssi",
"fromt": "str",
"to": "signalStrength",
"tot": "str"
},
{
"t": "change",
"p": "payload",
"pt": "msg",
"from": "value",
"fromt": "str",
"to": "wifiAccessPoints",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1250,
"y": 320,
"wires": [
[
"f9124bca24c8cd17"
]
]
},
{
"id": "9672eb4d6458c89f",
"type": "json",
"z": "590bedf68e85d2d7",
"name": "Convert to string",
"property": "payload",
"action": "str",
"pretty": false,
"x": 1020,
"y": 320,
"wires": [
[
"39ab0ee97a8c3eb5"
]
]
},
{
"id": "f9124bca24c8cd17",
"type": "json",
"z": "590bedf68e85d2d7",
"name": "Convert to object",
"property": "payload",
"action": "obj",
"pretty": false,
"x": 1490,
"y": 320,
"wires": [
[
"f0041917b7e38ded"
]
]
},
{
"id": "f0041917b7e38ded",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Set data, considerIp and URL",
"rules": [
{
"t": "move",
"p": "payload.timestamp",
"pt": "msg",
"to": "data.timestamp",
"tot": "msg"
},
{
"t": "move",
"p": "payload.deviceId",
"pt": "msg",
"to": "data.id",
"tot": "msg"
},
{
"t": "set",
"p": "payload.considerIp",
"pt": "msg",
"to": "false",
"tot": "bool"
},
{
"t": "set",
"p": "url",
"pt": "msg",
"to": "\"https://www.googleapis.com/geolocation/v1/geolocate?key=\" & $env('googleToken')\t",
"tot": "jsonata"
},
{
"t": "move",
"p": "payload.battery",
"pt": "msg",
"to": "data.battery",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1750,
"y": 320,
"wires": [
[
"7e26671f8bfec835"
]
]
},
{
"id": "621eb5641b04ac3e",
"type": "switch",
"z": "590bedf68e85d2d7",
"name": "Check accuracy",
"property": "payload.accuracy",
"propertyType": "msg",
"rules": [
{
"t": "lt",
"v": "50",
"vt": "num"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 2240,
"y": 320,
"wires": [
[
"ee28519bdbd4403a"
]
]
},
{
"id": "daeee2f62f340b6f",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Set URL",
"rules": [
{
"t": "set",
"p": "url",
"pt": "msg",
"to": "\"https://maps.googleapis.com/maps/api/elevation/json?locations=\" & msg.data.lat & \",\" & msg.data.lon & \"&key=\" & $env('googleToken')\t",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2480,
"y": 160,
"wires": [
[
"4a15a361fc420285"
]
]
},
{
"id": "4a15a361fc420285",
"type": "http request",
"z": "590bedf68e85d2d7",
"name": "Get elevation",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 2650,
"y": 160,
"wires": [
[
"14f0e6eae09949c9"
]
]
},
{
"id": "162d60fed6c3c219",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Prepare MQTT GPS data",
"rules": [
{
"t": "move",
"p": "payload[0].messages[0][0].measurementValue",
"pt": "msg",
"to": "data.lon",
"tot": "msg"
},
{
"t": "move",
"p": "payload[0].messages[0][1].measurementValue",
"pt": "msg",
"to": "data.lat",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1790,
"y": 160,
"wires": [
[
"daeee2f62f340b6f"
]
]
},
{
"id": "ee28519bdbd4403a",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Prepare MQTT WiFI data",
"rules": [
{
"t": "move",
"p": "payload.location.lng",
"pt": "msg",
"to": "data.lon",
"tot": "msg"
},
{
"t": "move",
"p": "payload.location.lat",
"pt": "msg",
"to": "data.lat",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2470,
"y": 260,
"wires": [
[
"daeee2f62f340b6f"
]
]
},
{
"id": "14f0e6eae09949c9",
"type": "switch",
"z": "590bedf68e85d2d7",
"name": "",
"property": "statusCode",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "200",
"vt": "num"
},
{
"t": "else"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 2820,
"y": 160,
"wires": [
[
"d24a8ff0a731d781"
],
[
"4e8c3e00494450b3"
]
]
},
{
"id": "d24a8ff0a731d781",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Set altitude",
"rules": [
{
"t": "set",
"p": "data.altitude",
"pt": "msg",
"to": "payload.results[0].elevation",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2970,
"y": 100,
"wires": [
[
"4e8c3e00494450b3"
]
]
},
{
"id": "4e8c3e00494450b3",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Move data to payload",
"rules": [
{
"t": "move",
"p": "payload[0].battery",
"pt": "msg",
"to": "payload.battery",
"tot": "msg"
},
{
"t": "move",
"p": "data",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 3180,
"y": 180,
"wires": [
[
"c722e31e2b6e91ed",
"c71dcf46b84dbb9f"
]
]
},
{
"id": "a5ef6402f71ae122",
"type": "inject",
"z": "590bedf68e85d2d7",
"name": "Sample data wifi",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "json",
"x": 180,
"y": 380,
"wires": [
[
"9a8bb73acdb2589c"
]
]
},
{
"id": "ceb1f0b867c48aaf",
"type": "inject",
"z": "590bedf68e85d2d7",
"name": "Sample data GPS",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "json",
"x": 190,
"y": 60,
"wires": [
[
"c164f739d2660d91",
"b57017d2022f033c"
]
]
},
{
"id": "9a8bb73acdb2589c",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Relevant bits Wifi",
"rules": [
{
"t": "delete",
"p": "payload.type",
"pt": "msg"
},
{
"t": "delete",
"p": "payload.motionId",
"pt": "msg"
},
{
"t": "move",
"p": "payload.object.messages[0][4].measurementValue",
"pt": "msg",
"to": "payload.battery",
"tot": "msg"
},
{
"t": "move",
"p": "payload.object.messages[0][1].measurementValue",
"pt": "msg",
"to": "payload.wifiAccessPoints",
"tot": "msg"
},
{
"t": "move",
"p": "payload.deviceInfo.devEui",
"pt": "msg",
"to": "payload.deviceId",
"tot": "msg"
},
{
"t": "move",
"p": "payload.object.messages[0][1].measurementId",
"pt": "msg",
"to": "payload.measureId",
"tot": "msg"
},
{
"t": "move",
"p": "payload.object.messages[0][1].timestamp",
"pt": "msg",
"to": "payload.timestamp",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 530,
"y": 280,
"wires": [
[
"e3f25e740ee5d751"
]
]
},
{
"id": "c164f739d2660d91",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Relevant bits Longitude",
"rules": [
{
"t": "move",
"p": "payload.object.messages[0][0].timestamp",
"pt": "msg",
"to": "payload.object.timestamp",
"tot": "msg"
},
{
"t": "move",
"p": "payload.deviceInfo.devEui",
"pt": "msg",
"to": "payload.object.deviceId",
"tot": "msg"
},
{
"t": "move",
"p": "payload.object.messages[0][1].measurementId",
"pt": "msg",
"to": "payload.object.measureId",
"tot": "msg"
},
{
"t": "move",
"p": "payload.object.messages[0][5].measurementValue",
"pt": "msg",
"to": "payload.object.battery",
"tot": "msg"
},
{
"t": "delete",
"p": "payload.object.messages[0][0]",
"pt": "msg"
},
{
"t": "delete",
"p": "payload.object.messages[0][3]",
"pt": "msg"
},
{
"t": "delete",
"p": "payload.object.messages[0][4]",
"pt": "msg"
},
{
"t": "delete",
"p": "payload.object.messages[0][5]",
"pt": "msg"
},
{
"t": "move",
"p": "payload.object",
"pt": "msg",
"to": "payload",
"tot": "msg"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "/device_sensor_data/1111/YOUR_DEVICE_EUI/1/+/4197",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 530,
"y": 120,
"wires": [
[
"e3f25e740ee5d751",
"74e62939f01d36c9"
]
]
},
{
"id": "b57017d2022f033c",
"type": "change",
"z": "590bedf68e85d2d7",
"name": "Relevant bits Latitude",
"rules": [
{
"t": "move",
"p": "payload.object.messages[0][2].timestamp",
"pt": "msg",
"to": "payload.object.timestamp",
"tot": "msg"
},
{
"t": "move",
"p": "payload.deviceInfo.devEui",
"pt": "msg",
"to": "payload.object.deviceId",
"tot": "msg"
},
{
"t": "move",
"p": "payload.object.messages[0][2].measurementId",
"pt": "msg",
"to": "payload.object.measureId",
"tot": "msg"
},
{
"t": "move",
"p": "payload.object.messages[0][5].measurementValue",
"pt": "msg",
"to": "payload.object.battery",
"tot": "msg"
},
{
"t": "delete",
"p": "payload.object.messages[0][0]",
"pt": "msg"
},
{
"t": "delete",
"p": "payload.object.messages[0][3]",
"pt": "msg"
},
{
"t": "delete",
"p": "payload.object.messages[0][4]",
"pt": "msg"
},
{
"t": "delete",
"p": "payload.object.messages[0][5]",
"pt": "msg"
},
{
"t": "move",
"p": "payload.object",
"pt": "msg",
"to": "payload",
"tot": "msg"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "/device_sensor_data/1111/YOUR_DEVICE_EUI/1/+/4198",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 520,
"y": 160,
"wires": [
[
"e3f25e740ee5d751",
"74e62939f01d36c9"
]
]
},
{
"id": "c71dcf46b84dbb9f",
"type": "debug",
"z": "590bedf68e85d2d7",
"name": "debug push Traccar",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 3140,
"y": 400,
"wires": []
},
{
"id": "74e62939f01d36c9",
"type": "debug",
"z": "590bedf68e85d2d7",
"name": "debug GPS",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 960,
"y": 60,
"wires": []
},
{
"id": "6fed0179732d5e47",
"type": "tab",
"label": "Traccar Template",
"disabled": false,
"info": "",
"env": []
},
{
"id": "1c75cd808b6845f6",
"type": "http request",
"z": "6fed0179732d5e47",
"name": "Create postion in Traccar",
"method": "GET",
"ret": "txt",
"paytoqs": "query",
"url": "",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 630,
"y": 140,
"wires": [
[]
]
},
{
"id": "de2e3edcc00a72b7",
"type": "mqtt in",
"z": "6fed0179732d5e47",
"name": "",
"topic": "/tracking/add",
"qos": "2",
"datatype": "auto-detect",
"broker": "35fd3a139e459f2a",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 190,
"y": 140,
"wires": [
[
"f4572398ce40c8a1"
]
]
},
{
"id": "f4572398ce40c8a1",
"type": "function",
"z": "6fed0179732d5e47",
"name": "Set URL",
"func": "msg.url=env.get(\"host\")+\":\"+env.get(\"portOsmand\")+\"/?id=\"+msg.payload.id+\"&lat=\"+msg.payload.lat+\"&lon=\"+msg.payload.lon+\"×tamp=\"+msg.payload.timestamp\n\nif (msg.payload.speed != null)\n{\n msg.url = msg.url + \"&speed=\" + msg.payload.speed\n}\n\nif (msg.payload.altitude != null)\n{\n msg.url = msg.url + \"&altitude=\" + msg.payload.altitude\n}\n\nif (msg.payload.battery != null)\n{\n msg.url = msg.url + \"&batt=\" + msg.payload.battery\n}\n\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 360,
"y": 140,
"wires": [
[
"1c75cd808b6845f6",
"e1c2666f23995c21"
]
]
},
{
"id": "e1c2666f23995c21",
"type": "debug",
"z": "6fed0179732d5e47",
"name": "debug Update Traccar",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 710,
"y": 320,
"wires": []
},
{
"id": "270bf66dda334b51",
"type": "mqtt-broker",
"name": "SenseCAP",
"broker": "192.168.4.8",
"port": "1883",
"clientid": "2CF7F1C064900884",
"autoConnect": true,
"usetls": false,
"protocolVersion": "4",
"keepalive": "60",
"cleansession": true,
"autoUnsubscribe": true,
"birthTopic": "",
"birthQos": "0",
"birthRetain": "false",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closeRetain": "false",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willRetain": "false",
"willPayload": "",
"willMsg": {},
"userProps": "",
"sessionExpiry": ""
},
{
"id": "35fd3a139e459f2a",
"type": "mqtt-broker",
"name": "HA - MQTT",
"broker": "192.168.4.8",
"port": "1883",
"clientid": "",
"autoConnect": true,
"usetls": false,
"protocolVersion": "4",
"keepalive": "60",
"cleansession": true,
"autoUnsubscribe": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willPayload": "",
"willMsg": {},
"userProps": "",
"sessionExpiry": ""
}
]
Hi all,
I'm new to this forum but I'd like to share an open source connector that can be used to connect the Sensecap T1000 to traccar:
https://github.com/nielstiben/ttn-traccer-connector
It's a program that listens for callback messages from TTN and forwards them to Traccar using the OsmAnd protocol.
Hi all and sorry for reviving this subject.
My T1000 is working fine, it sends messages to my Sensecap LoRa Gateway, which is sending to MQTT Broker and I've also managed to get the Sensecap Integration for home assistant. I can see the device and its properties just fine.
Now I'd like to have the device as a device-tracker in HA so I could easily send it to Traccar but I don't know how to do that.
And In the end, I'd like to have Wifi-SSID tracking in addition to GPS which seems to be the goal of the code above if I understood correctly.
Can someone guide me more precisely on where I should put this code in Traccar ?
Any guidance would be much appreciated.
Thanks