Heartbeat Flow

This flow is used to generate heartbeat messages.

The flow uses the global assetId variable set in the startup flow.

[
    {
        "id": "e3a39e70.5684e",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": ""
    },
    {
        "id": "1e62113a.c7b30f",
        "type": "inject",
        "z": "e3a39e70.5684e",
        "name": "Interval for Heartbeat",
        "topic": "",
        "payload": "true",
        "payloadType": "bool",
        "repeat": "60",
        "crontab": "",
        "once": true,
        "onceDelay": "",
        "x": 220,
        "y": 120,
        "wires": [
            [
                "28a95094.1eaa2"
            ]
        ]
    },
    {
        "id": "28a95094.1eaa2",
        "type": "function",
        "z": "e3a39e70.5684e",
        "name": "Heartbeat Message",
        "func": "var message = {};\nvar dataItemId = \"Heartbeat\"\nvar topic = 'Asset/'+ global.get(\"assetId\") + '/' + dataItemId;\nos = context.global.os;\nvar now = new Date();\n\nmessage[\"assetId\"] = global.get(\"assetId\");\nmessage[\"dateTime\"] = now.toISOString();\nmessage[\"dataItemId\"] = dataItemId;\nmessage[\"IPAddress\"] = os.networkInterfaces().wlan0[0].address;\nmessage[\"MACAddress\"] = os.networkInterfaces().wlan0[0].mac;\n\nreturn [{\"topic\": topic, \"payload\": JSON.stringify(message)}]",
        "outputs": 1,
        "noerr": 0,
        "x": 530,
        "y": 120,
        "wires": [
            [
                "6e5162b1.c61f7c"
            ]
        ]
    },
    {
        "id": "6e5162b1.c61f7c",
        "type": "mqtt out",
        "z": "e3a39e70.5684e",
        "name": "mb.iotfm.org",
        "topic": "",
        "qos": "0",
        "retain": "",
        "broker": "7f68d892.c7edd8",
        "x": 810,
        "y": 120,
        "wires": []
    },
    {
        "id": "7f68d892.c7edd8",
        "type": "mqtt-broker",
        "z": "",
        "name": "mb.iotfm.org",
        "broker": "mb.iotfm.org",
        "port": "1883",
        "clientid": "A1000",
        "usetls": false,
        "compatmode": true,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "willTopic": "",
        "willQos": "0",
        "willPayload": ""
    }
]