Skip to content

Instantly share code, notes, and snippets.

@crashdown79
Last active October 5, 2019 16:55
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
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