Skip to content

Instantly share code, notes, and snippets.

@crashdown79
Last active October 5, 2019 16:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crashdown79/4d56f49a6c37b9dd3cb322f7dc90fd25 to your computer and use it in GitHub Desktop.
Save crashdown79/4d56f49a6c37b9dd3cb322f7dc90fd25 to your computer and use it in GitHub Desktop.
GoogleAPI request travle time & save to influxDB

I was inspired by a flow/video from User: @nygma2004 for an new project idea with my Node-Red. Basicaly he uses Node-Red for requesting the Google API and getting the travle time form home to work. My idea was then to request the data from the Google API and save them in InfluxDB for further analytics.

Actual i visualize it in Grafana so i know when normaly traffic starts in the morning.

Node-Red Flow:GoogleAPI request and store in influxDB

Grafana Visualisation:Visualize influxDB in Grafana

[
{
"id": "80d5d518.4ca0b",
"type": "http request",
"z": "a6d40943.974d4",
"name": "Travel to work",
"method": "GET",
"ret": "txt",
"paytoqs": false,
"url": "https://maps.googleapis.com/maps/api/distancematrix/json?origins=Haarer+Weg+2+85630+Grasbrun+VC&destinations=Ludwigsfelder+Str+85+80997+M%C3%BCnchen&key={your google api key}&mode=driving&units=metric&departure_time=now",
"tls": "",
"proxy": "",
"authType": "",
"x": 680,
"y": 400,
"wires": [
[
"c162e379.b586f8"
]
]
},
{
"id": "c162e379.b586f8",
"type": "json",
"z": "a6d40943.974d4",
"name": "",
"x": 850,
"y": 400,
"wires": [
[
"4985da12.9d1f5c",
"ca2e507d.c672e8",
"cca70e93.2c74d"
]
]
},
{
"id": "4985da12.9d1f5c",
"type": "change",
"z": "a6d40943.974d4",
"name": "",
"rules": [
{
"t": "move",
"p": "payload.rows[0].elements[0].duration_in_traffic.value",
"pt": "msg",
"to": "payload",
"tot": "msg"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "duration_in_traffic",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1060,
"y": 360,
"wires": [
[
"8d9c7218.8ae548"
]
]
},
{
"id": "1c6d963d.9f3e8a",
"type": "influxdb out",
"z": "a6d40943.974d4",
"influxdb": "4a8ed10d.a5189",
"name": "Statistics",
"measurement": "travle_allach",
"precision": "",
"retentionPolicy": "",
"x": 1460,
"y": 400,
"wires": []
},
{
"id": "d314e890.b3b85",
"type": "bigtimer",
"z": "a6d40943.974d4",
"outtopic": "",
"outpayload1": "",
"outpayload2": "",
"name": "Big Timer",
"comment": "",
"lat": "47.9922",
"lon": "12.0053",
"starttime": "270",
"endtime": "630",
"starttime2": "0",
"endtime2": "0",
"startoff": 0,
"endoff": 0,
"startoff2": 0,
"endoff2": 0,
"offs": 0,
"outtext1": "",
"outtext2": "",
"timeout": 1440,
"sun": false,
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": false,
"jan": true,
"feb": true,
"mar": true,
"apr": true,
"may": true,
"jun": true,
"jul": true,
"aug": true,
"sep": true,
"oct": true,
"nov": true,
"dec": true,
"day1": 0,
"month1": 0,
"day2": 0,
"month2": 0,
"day3": 0,
"month3": 0,
"day4": 0,
"month4": 0,
"day5": 0,
"month5": 0,
"day6": 0,
"month6": 0,
"d1": 0,
"w1": 0,
"d2": 0,
"w2": 0,
"d3": 0,
"w3": 0,
"d4": 0,
"w4": 0,
"d5": 0,
"w5": 0,
"d6": 0,
"w6": 0,
"xday1": 0,
"xmonth1": 0,
"xday2": 0,
"xmonth2": 0,
"xday3": 0,
"xmonth3": 0,
"xday4": 0,
"xmonth4": 0,
"xday5": 0,
"xmonth5": 0,
"xday6": 0,
"xmonth6": 0,
"xd1": 0,
"xw1": 0,
"xd2": 0,
"xw2": 0,
"xd3": 0,
"xw3": 0,
"xd4": 0,
"xw4": 0,
"xd5": 0,
"xw5": 0,
"xd6": 0,
"xw6": 0,
"suspend": false,
"random": false,
"repeat": true,
"atstart": true,
"odd": false,
"even": false,
"x": 220,
"y": 400,
"wires": [
[],
[
"4b874c8a.992e6c"
],
[]
]
},
{
"id": "dc449fb.c000b6",
"type": "join",
"z": "a6d40943.974d4",
"name": "",
"mode": "custom",
"build": "string",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": false,
"timeout": "",
"count": "10",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 490,
"y": 400,
"wires": [
[
"80d5d518.4ca0b"
]
]
},
{
"id": "4b874c8a.992e6c",
"type": "switch",
"z": "a6d40943.974d4",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "1",
"vt": "str"
},
{
"t": "eq",
"v": "0",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 370,
"y": 400,
"wires": [
[
"dc449fb.c000b6"
],
[]
]
},
{
"id": "c7dda87d.f9ea3",
"type": "inject",
"z": "a6d40943.974d4",
"name": "",
"topic": "",
"payload": "true",
"payloadType": "bool",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 470,
"y": 340,
"wires": [
[
"80d5d518.4ca0b"
]
]
},
{
"id": "ca2e507d.c672e8",
"type": "change",
"z": "a6d40943.974d4",
"name": "",
"rules": [
{
"t": "move",
"p": "payload.rows[0].elements[0].duration.value",
"pt": "msg",
"to": "payload",
"tot": "msg"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "duration",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1060,
"y": 400,
"wires": [
[
"8d9c7218.8ae548"
]
]
},
{
"id": "cca70e93.2c74d",
"type": "change",
"z": "a6d40943.974d4",
"name": "",
"rules": [
{
"t": "move",
"p": "payload.rows[0].elements[0].distance.value",
"pt": "msg",
"to": "payload",
"tot": "msg"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "distance",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1060,
"y": 440,
"wires": [
[
"8d9c7218.8ae548"
]
]
},
{
"id": "8d9c7218.8ae548",
"type": "join",
"z": "a6d40943.974d4",
"name": "",
"mode": "custom",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": true,
"timeout": "2",
"count": "",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 1270,
"y": 400,
"wires": [
[
"1c6d963d.9f3e8a"
]
]
},
{
"id": "4a8ed10d.a5189",
"type": "influxdb",
"z": "",
"hostname": "127.0.0.1",
"port": "8086",
"protocol": "http",
"database": "statistics",
"name": "",
"usetls": false,
"tls": ""
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment