timeserver fixes
This commit is contained in:
parent
c13934be99
commit
71475678cd
@ -48,8 +48,8 @@
|
|||||||
"from": "",
|
"from": "",
|
||||||
"to": "",
|
"to": "",
|
||||||
"reg": false,
|
"reg": false,
|
||||||
"x": 540,
|
"x": 220,
|
||||||
"y": 340,
|
"y": 360,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"84f1cda2.069e7"
|
"84f1cda2.069e7"
|
||||||
@ -64,8 +64,8 @@
|
|||||||
"topic": "+/devices/+/up",
|
"topic": "+/devices/+/up",
|
||||||
"qos": "2",
|
"qos": "2",
|
||||||
"broker": "2a15ab6f.ab2244",
|
"broker": "2a15ab6f.ab2244",
|
||||||
"x": 130,
|
"x": 70,
|
||||||
"y": 140,
|
"y": 120,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"9f4b8dd3.2f0d2"
|
"9f4b8dd3.2f0d2"
|
||||||
@ -81,8 +81,8 @@
|
|||||||
"qos": "",
|
"qos": "",
|
||||||
"retain": "",
|
"retain": "",
|
||||||
"broker": "2a15ab6f.ab2244",
|
"broker": "2a15ab6f.ab2244",
|
||||||
"x": 710,
|
"x": 690,
|
||||||
"y": 460,
|
"y": 360,
|
||||||
"wires": []
|
"wires": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -93,8 +93,8 @@
|
|||||||
"property": "payload",
|
"property": "payload",
|
||||||
"action": "",
|
"action": "",
|
||||||
"pretty": false,
|
"pretty": false,
|
||||||
"x": 340,
|
"x": 220,
|
||||||
"y": 240,
|
"y": 200,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"8ed813a9.a9319"
|
"8ed813a9.a9319"
|
||||||
@ -118,8 +118,8 @@
|
|||||||
"checkall": "true",
|
"checkall": "true",
|
||||||
"repair": false,
|
"repair": false,
|
||||||
"outputs": 1,
|
"outputs": 1,
|
||||||
"x": 340,
|
"x": 220,
|
||||||
"y": 140,
|
"y": 120,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"4f97d75.6c87528"
|
"4f97d75.6c87528"
|
||||||
@ -131,11 +131,11 @@
|
|||||||
"type": "function",
|
"type": "function",
|
||||||
"z": "449c1517.e25f4c",
|
"z": "449c1517.e25f4c",
|
||||||
"name": "Time_Sync_Ans",
|
"name": "Time_Sync_Ans",
|
||||||
"func": "/* LoRaWAN Timeserver\n\nconstruct 6 byte timesync_answer from gateway timestamp and node's time_sync_req\n\nbyte meaning\n0 sequence number (taken from node's time_sync_req)\n1..4 current second (from epoch time 1970)\n5 1/250ths fractions of current second\n\n*/\n\n let buf = new ArrayBuffer(6);\n let timestamp = (+new Date(msg.payload.metadata.time));\n\n var seconds = Math.floor(timestamp/1000);\n var fractions = timestamp % 250;\n var seqno = msg.payload.payload_raw[0];\n\n new DataView(buf).setUint8(0, seqno);\n new DataView(buf).setUint32(1, seconds);\n new DataView(buf).setUint8(5, fractions);\n\n msg.payload = new Buffer(new Uint8Array(buf));\n \n return msg;",
|
"func": "/* LoRaWAN Timeserver\n\nconstruct 6 byte timesync_answer from gateway timestamp and node's time_sync_req\n\nbyte meaning\n0 sequence number (taken from node's time_sync_req)\n1..4 current second (from epoch time 1970)\n5 1/250ths fractions of current second\n\n*/\n\n let buf = new ArrayBuffer(6);\n let timestamp = (+new Date(msg.payload.metadata.gateways[0].time));\n \n var seconds = Math.floor(timestamp/1000);\n var fractions = timestamp % 250;\n var seqno = msg.payload.payload_raw[0];\n\n new DataView(buf).setUint8(0, seqno);\n new DataView(buf).setUint32(1, seconds);\n new DataView(buf).setUint8(5, fractions);\n\n msg.payload = new Buffer(new Uint8Array(buf));\n \n return msg;",
|
||||||
"outputs": 1,
|
"outputs": 1,
|
||||||
"noerr": 0,
|
"noerr": 0,
|
||||||
"x": 360,
|
"x": 400,
|
||||||
"y": 340,
|
"y": 280,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"49e3c067.e782e"
|
"49e3c067.e782e"
|
||||||
@ -150,8 +150,8 @@
|
|||||||
"property": "payload",
|
"property": "payload",
|
||||||
"action": "",
|
"action": "",
|
||||||
"pretty": false,
|
"pretty": false,
|
||||||
"x": 480,
|
"x": 540,
|
||||||
"y": 460,
|
"y": 360,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"72d5e7ee.d1eba8"
|
"72d5e7ee.d1eba8"
|
||||||
@ -165,11 +165,11 @@
|
|||||||
"name": "Decode",
|
"name": "Decode",
|
||||||
"action": "",
|
"action": "",
|
||||||
"property": "payload.payload_raw",
|
"property": "payload.payload_raw",
|
||||||
"x": 480,
|
"x": 380,
|
||||||
"y": 240,
|
"y": 200,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"f4c5b6de.f95148"
|
"f868bce2.dde67"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -180,14 +180,49 @@
|
|||||||
"name": "Encode",
|
"name": "Encode",
|
||||||
"action": "",
|
"action": "",
|
||||||
"property": "payload.payload_raw",
|
"property": "payload.payload_raw",
|
||||||
"x": 340,
|
"x": 380,
|
||||||
"y": 460,
|
"y": 360,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"dac8aafa.389298"
|
"dac8aafa.389298"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "6190967b.01f758",
|
||||||
|
"type": "comment",
|
||||||
|
"z": "449c1517.e25f4c",
|
||||||
|
"name": "LoRaWAN Timeserver",
|
||||||
|
"info": "PLEASE NOTE: There is a patent filed for the time sync algorithm used in the\ncode of this file. The shown implementation example is covered by the\nrepository's licencse, but you may not be eligible to deploy the applied\nalgorithm in applications without granted license by the patent holder.",
|
||||||
|
"x": 120,
|
||||||
|
"y": 40,
|
||||||
|
"wires": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "f868bce2.dde67",
|
||||||
|
"type": "switch",
|
||||||
|
"z": "449c1517.e25f4c",
|
||||||
|
"name": "Timechecker",
|
||||||
|
"property": "payload.metadata.gateways[0].time",
|
||||||
|
"propertyType": "msg",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"t": "lte",
|
||||||
|
"v": "payload.metadata.time",
|
||||||
|
"vt": "msg"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"checkall": "true",
|
||||||
|
"repair": false,
|
||||||
|
"outputs": 1,
|
||||||
|
"x": 550,
|
||||||
|
"y": 200,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"f4c5b6de.f95148"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "2a15ab6f.ab2244",
|
"id": "2a15ab6f.ab2244",
|
||||||
"type": "mqtt-broker",
|
"type": "mqtt-broker",
|
||||||
|
Loading…
Reference in New Issue
Block a user