Attached is very simple NodeRed flow to extract Pollen information for your local area and push it into OH for rule execution. Likely can be done much cleaner, but this was a quick test type effort.
API provider: About Ambee
[
{
"id": "5ea5f103.3974e",
"type": "tab",
"label": "Ambee Pollen",
"disabled": false,
"info": ""
},
{
"id": "422e63d8.caa1fc",
"type": "inject",
"z": "5ea5f103.3974e",
"name": "Trigger Every 15 minutes",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "900",
"crontab": "",
"once": false,
"onceDelay": "5",
"x": 900,
"y": 440,
"wires": [
[
"a10f378f.3a5978"
]
]
},
{
"id": "a10f378f.3a5978",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Reset Alert Counter",
"func": "flow.set(\"count\", 0);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 870,
"y": 560,
"wires": [
[
"9a9be4f3.dae648"
]
]
},
{
"id": "9a9be4f3.dae648",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Add User-Agent header",
"func": "msg.payload = \"data to post\";\nmsg.headers = {};\n//msg.headers['User-Agent'] = 'Mr.X@gmail.com' ;\nmsg.headers['x-api-key'] = 'GetyourFREEKeyAndReplaceThis';\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 910,
"y": 640,
"wires": [
[
"b1a6e314.b2b42"
]
]
},
{
"id": "b1a6e314.b2b42",
"type": "http request",
"z": "5ea5f103.3974e",
"name": "Get Polled Counts By Area",
"method": "GET",
"ret": "txt",
"paytoqs": false,
"url": "https://api.ambeedata.com/latest/pollen/by-lat-lng?lat=40.7895153&lng=-86.4250983",
"tls": "d52cd3fd.2bd66",
"proxy": "",
"authType": "basic",
"x": 900,
"y": 720,
"wires": [
[
"3c43024b.8d9aae"
]
]
},
{
"id": "3c43024b.8d9aae",
"type": "json",
"z": "5ea5f103.3974e",
"name": "",
"property": "payload",
"action": "",
"pretty": false,
"x": 870,
"y": 880,
"wires": [
[
"2706dbd3.2a3524"
]
]
},
{
"id": "2706dbd3.2a3524",
"type": "Serial Iterator",
"z": "5ea5f103.3974e",
"name": "Process each Device Seperately",
"property": "payload.data",
"inputFlow": "input",
"saveOutput": 1,
"recursive": 1,
"storeId": 0,
"x": 1190,
"y": 880,
"wires": [
[
"1e04ca27.13ff46",
"88b7d5c5.9bfa58",
"fc3753d5.aaf8f",
"10522c0e.dede24",
"203f8856.037408",
"28205e5e.7f4942",
"da3d2874.bf8628",
"bb2eb1c1.919a4",
"1968d968.af1ce7",
"145cb2cf.c0d15d",
"9a061116.375b4",
"e5f307c9.ce8218",
"6e535b39.86ea14",
"7c574391.8f217c",
"16160886.033ff7",
"87c6ab5f.af72f8",
"dcf76e47.c2e8",
"bd9c6885.d81268"
],
[]
]
},
{
"id": "1e04ca27.13ff46",
"type": "delay",
"z": "5ea5f103.3974e",
"name": "",
"pauseType": "delay",
"timeout": "1",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 1320,
"y": 1000,
"wires": [
[
"7877d483.733c0c"
]
]
},
{
"id": "7877d483.733c0c",
"type": "no-op",
"z": "5ea5f103.3974e",
"name": "",
"x": 1290,
"y": 1200,
"wires": [
[
"2706dbd3.2a3524"
]
]
},
{
"id": "82ccdfe1.14536",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Grass Pollen Count",
"controller": "8fb2c716.40af68",
"itemname": "Count_Grass_Pollen",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 600,
"wires": [
[]
]
},
{
"id": "88b7d5c5.9bfa58",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to GrassPollen Count",
"func": "msg.payload = msg.payload.Count.grass_pollen;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1760,
"y": 600,
"wires": [
[
"82ccdfe1.14536"
]
]
},
{
"id": "d87ba051.85c63",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Tree Pollen Count",
"controller": "8fb2c716.40af68",
"itemname": "Count_Tree_Pollen",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 640,
"wires": [
[]
]
},
{
"id": "fc3753d5.aaf8f",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Tree Pollen Count",
"func": "msg.payload = msg.payload.Count.tree_pollen;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1760,
"y": 640,
"wires": [
[
"d87ba051.85c63"
]
]
},
{
"id": "beaaf9a9.966778",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Weed Pollen Count",
"controller": "8fb2c716.40af68",
"itemname": "Count_Weed_Pollen",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 680,
"wires": [
[]
]
},
{
"id": "10522c0e.dede24",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Weed Pollen Count",
"func": "msg.payload = msg.payload.Count.weed_pollen;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1760,
"y": 680,
"wires": [
[
"beaaf9a9.966778"
]
]
},
{
"id": "d39212e2.dc4ea",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Grass Pollen Risk",
"controller": "8fb2c716.40af68",
"itemname": "Risk_Grass_Pollen",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 760,
"wires": [
[]
]
},
{
"id": "203f8856.037408",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to GrassPollen Risk",
"func": "msg.payload = msg.payload.Risk.grass_pollen;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1750,
"y": 760,
"wires": [
[
"d39212e2.dc4ea"
]
]
},
{
"id": "26cc61ab.9c391e",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Tree Pollen Risk",
"controller": "8fb2c716.40af68",
"itemname": "Risk_Tree_Pollen",
"topic": "ItemUpdate",
"payload": "",
"x": 2110,
"y": 800,
"wires": [
[]
]
},
{
"id": "28205e5e.7f4942",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Tree Pollen Risk",
"func": "msg.payload = msg.payload.Risk.tree_pollen;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1750,
"y": 800,
"wires": [
[
"26cc61ab.9c391e"
]
]
},
{
"id": "c851e78d.b36c18",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Weed Pollen Risk",
"controller": "8fb2c716.40af68",
"itemname": "Risk_Weed_Pollen",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 840,
"wires": [
[]
]
},
{
"id": "da3d2874.bf8628",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Weed Pollen Risk",
"func": "msg.payload = msg.payload.Risk.weed_pollen;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1760,
"y": 840,
"wires": [
[
"c851e78d.b36c18"
]
]
},
{
"id": "a7ae05b3.a9a768",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree Ash",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_Ash",
"topic": "ItemUpdate",
"payload": "",
"x": 2110,
"y": 940,
"wires": [
[]
]
},
{
"id": "bb2eb1c1.919a4",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Ash Numbers",
"func": "msg.payload = msg.payload.Species.Tree.Ash;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1740,
"y": 940,
"wires": [
[
"a7ae05b3.a9a768"
]
]
},
{
"id": "119ad426.3a17cc",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree Birch",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_Birch",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 980,
"wires": [
[]
]
},
{
"id": "1968d968.af1ce7",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Ash Numbers",
"func": "msg.payload = msg.payload.Species.Tree.Birch;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1740,
"y": 980,
"wires": [
[
"119ad426.3a17cc"
]
]
},
{
"id": "b55d662.eb59598",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree Cedar",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_Cedar",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 1020,
"wires": [
[]
]
},
{
"id": "145cb2cf.c0d15d",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Cedar Numbers",
"func": "msg.payload = msg.payload.Species.Tree['Cypress / Juniper / Cedar'];\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1750,
"y": 1020,
"wires": [
[
"b55d662.eb59598"
]
]
},
{
"id": "735fab55.0ae084",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree Elm",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_Elm",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 1060,
"wires": [
[]
]
},
{
"id": "9a061116.375b4",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Elm Numbers",
"func": "msg.payload = msg.payload.Species.Tree.Elm;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1740,
"y": 1060,
"wires": [
[
"735fab55.0ae084"
]
]
},
{
"id": "df1c8e10.2e5b8",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree Maple",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_Maple",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 1100,
"wires": [
[]
]
},
{
"id": "e5f307c9.ce8218",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Maple Numbers",
"func": "msg.payload = msg.payload.Species.Tree.Maple;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1750,
"y": 1100,
"wires": [
[
"df1c8e10.2e5b8"
]
]
},
{
"id": "cb121d9f.ed303",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree Mulberry",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_Mulberry",
"topic": "ItemUpdate",
"payload": "",
"x": 2130,
"y": 1140,
"wires": [
[]
]
},
{
"id": "6e535b39.86ea14",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Mulberry Numbers",
"func": "msg.payload = msg.payload.Species.Tree.Mulberry;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1760,
"y": 1140,
"wires": [
[
"cb121d9f.ed303"
]
]
},
{
"id": "e92075a4.d39c88",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree Oak",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_Oak",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 1180,
"wires": [
[]
]
},
{
"id": "7c574391.8f217c",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Oak Numbers",
"func": "msg.payload = msg.payload.Species.Tree.Oak;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1740,
"y": 1180,
"wires": [
[
"e92075a4.d39c88"
]
]
},
{
"id": "bc6cc73a.ec07f8",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree Pine ",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_Pine",
"topic": "ItemUpdate",
"payload": "",
"x": 2120,
"y": 1220,
"wires": [
[]
]
},
{
"id": "16160886.033ff7",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Pine Numbers",
"func": "msg.payload = msg.payload.Species.Tree.Pine;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1750,
"y": 1220,
"wires": [
[
"bc6cc73a.ec07f8"
]
]
},
{
"id": "3e4b2b29.251824",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Tree CottonWood ",
"controller": "8fb2c716.40af68",
"itemname": "Species_Tree_CottonWood",
"topic": "ItemUpdate",
"payload": "",
"x": 2140,
"y": 1260,
"wires": [
[]
]
},
{
"id": "87c6ab5f.af72f8",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to CottonWood Numbers",
"func": "msg.payload = msg.payload.Species.Tree['Poplar / Cottonwood'];\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1770,
"y": 1260,
"wires": [
[
"3e4b2b29.251824"
]
]
},
{
"id": "5d35e0d3.11336",
"type": "comment",
"z": "5ea5f103.3974e",
"name": "https://api-dashboard.getambee.com/#/docs",
"info": "",
"x": 910,
"y": 400,
"wires": []
},
{
"id": "a7b10c6.28428f",
"type": "openhab2-out",
"z": "5ea5f103.3974e",
"name": "Capture Species Weed Ragweed",
"controller": "8fb2c716.40af68",
"itemname": "Species_Weed_Ragweed",
"topic": "ItemUpdate",
"payload": "",
"x": 2140,
"y": 1360,
"wires": [
[]
]
},
{
"id": "dcf76e47.c2e8",
"type": "function",
"z": "5ea5f103.3974e",
"name": "Set Payload to Ragweed Numbers",
"func": "msg.payload = msg.payload.Species.Weed.Ragweed;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1760,
"y": 1360,
"wires": [
[
"a7b10c6.28428f"
]
]
},
{
"id": "bd9c6885.d81268",
"type": "debug",
"z": "5ea5f103.3974e",
"name": "DATA",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 1320,
"y": 740,
"wires": []
},
{
"id": "d52cd3fd.2bd66",
"type": "tls-config",
"z": "",
"name": "",
"cert": "",
"key": "",
"ca": "",
"certname": "",
"keyname": "",
"caname": "",
"servername": "",
"verifyservercert": true
},
{
"id": "8fb2c716.40af68",
"type": "openhab2-controller",
"z": "",
"name": "openHAB Controller",
"protocol": "http",
"host": "192.168.15.xxx",
"port": "8080",
"path": "",
"username": "MrX",
"password": "!4yOu2No"
}
]