Skip to content

Instantly share code, notes, and snippets.

@brylie
Last active May 8, 2017 12:09
Show Gist options
  • Save brylie/5d2c9fa71b249b21d3c377087dd5b395 to your computer and use it in GitHub Desktop.
Save brylie/5d2c9fa71b249b21d3c377087dd5b395 to your computer and use it in GitHub Desktop.
Finland, Helsinki - Real-time HSL transit map

A realtime transit map generated from the Helsinki transportation realtime MQTT stream, including rate limiting and WebSockets output.

[
{
"id": "e2195212.a4714",
"type": "mqtt in",
"z": "266e93fa.65ea04",
"name": "HSL open API",
"topic": "/hfp/journey/#",
"qos": "2",
"broker": "a7e4e343.855248",
"x": 247.7452392578125,
"y": 209,
"wires": [
[
"68c08c01.967884"
]
]
},
{
"id": "3dc8e41d.4f6cb4",
"type": "function",
"z": "266e93fa.65ea04",
"name": "Parse Vehicle",
"func": "var data = msg.payload;\n\nvar vehicle = {\n name: data.VP.veh,\n lat: data.VP.lat,\n lon: data.VP.long,\n icon: \"ship\",\n iconColor: \"red\",\n source: data.VP.source,\n bearing: data.VP.hdg,\n speed: data.VP.spd,\n designation: data.VP.desi\n //extrainfo: data.VP.desi,\n //timeStamp: data.VP.tst\n};\n\nif (\n vehicle.source === 'hsl helmi'\n ||\n vehicle.source === 'hsl roisto'\n ) {\n // bus\n vehicle.icon = 'friend';\n vehicle.iconColor = 'blue';\n vehicle.layer = \"Bus\";\n} else if (\n vehicle.source === 'hsl live'\n ||\n vehicle.source === 'sm5logger'\n ) {\n // Local trains/trams\n vehicle.iconColor = 'green';\n vehicle.layer = \"Train/tram\";\n} else if (vehicle.source === 'vr') {\n // VR train (local)\n vehicle.iconColor = 'chartreuse';\n vehicle.layer = \"VR train (local)\";\n} else if (vehicle.source === 'meri-test.digitraffic.fi') {\n // ferry\n vehicle.iconColor = 'aqua';\n vehicle.layer = \"Ferry\";\n} else {\n node.error('Unknown source:' + vehicle.source);\n node.error('Unknown designation:' + vehicle.designation);\n}\n\nmsg.topic = vehicle.name;\nmsg.payload = vehicle;\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 423.9952392578125,
"y": 311.25,
"wires": [
[
"5d7249be.1cd9d8",
"5467e8f0.ab2c18"
]
]
},
{
"id": "5467e8f0.ab2c18",
"type": "debug",
"z": "266e93fa.65ea04",
"name": "",
"active": false,
"console": "false",
"complete": "false",
"x": 586.2452392578125,
"y": 251.353515625,
"wires": []
},
{
"id": "68c08c01.967884",
"type": "json",
"z": "266e93fa.65ea04",
"name": "",
"x": 347.2452392578125,
"y": 258.353515625,
"wires": [
[
"3dc8e41d.4f6cb4",
"dd715ade.0ffc3"
]
]
},
{
"id": "5d7249be.1cd9d8",
"type": "worldmap",
"z": "266e93fa.65ea04",
"name": "",
"lat": "60",
"lon": "25",
"zoom": "10",
"layer": "OSM",
"cluster": "",
"maxage": "",
"usermenu": "hide",
"panit": "false",
"x": 601.5,
"y": 363,
"wires": []
},
{
"id": "dd715ade.0ffc3",
"type": "debug",
"z": "266e93fa.65ea04",
"name": "",
"active": false,
"console": "false",
"complete": "false",
"x": 488.5,
"y": 188,
"wires": []
},
{
"id": "a7e4e343.855248",
"type": "mqtt-broker",
"broker": "mqtt.hsl.fi",
"port": "1883",
"clientid": "",
"usetls": false,
"verifyservercert": true,
"compatmode": true,
"keepalive": 15,
"cleansession": true,
"willQos": "0",
"birthQos": "0"
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment