[{"id":"b770b416.7af528","type":"function","z":"bbbd03f4.c46cf","name":"Set Influx Data","func":"\nconst ACTIVE = 'active';\nconst CLOSED = 'closed';\nconst DETECTED = 'detected';\nconst FOLLOW_SCHEDULE = 'follow schedule';\nconst GOOD = 'good';\nconst HEATING = 'heating';\nconst LOCKED = 'locked';\nconst MUTED = 'muted';\nconst OFF = 'off';\nconst ON = 'on';\nconst OPEN = 'open';\nconst PRESENT = 'present';\nconst PUSHED = 'pushed';\nconst SLEEPING = 'sleeping';\nconst TOUCHED = 'touched';\nconst WET = 'wet';\n\nvar v = {\n 'value' : null,\n 'isBinary' : null\n};\n\nif(msg.name == \"acceleration\") {\n v.value = (msg.value == ACTIVE ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"alarm\") {\n v.value = (msg.value != OFF ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"button\") {\n v.value = (msg.value != PUSHED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"carbonMonoxide\") {\n v.value = (msg.value == DETECTED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"consumableStatus\") {\n v.value = (msg.value == GOOD ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"contact\") {\n v.value = (msg.value == OPEN ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"door\") {\n v.value = (msg.value != OPEN ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"lock\") {\n v.value = (msg.value == LOCKED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"motion\") {\n v.value = (msg.value == ACTIVE ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"mute\") {\n v.value = (msg.value == MUTED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"presence\") {\n v.value = (msg.value == PRESENT ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"shock\") {\n v.value = (msg.value == DETECTED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"sleeping\") {\n v.value = (msg.value == SLEEPING ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"smoke\") {\n v.value = (msg.value == DETECTED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"sound\") {\n v.value = (msg.value == DETECTED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"switch\") {\n v.value = (msg.value == ON ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"tamper\") {\n v.value = (msg.value == DETECTED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"thermostatMode\") {\n v.value = (msg.value != OFF ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"thermostatFanMode\") {\n v.value = (msg.value != OFF ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"thermostatOperatingState\") {\n v.value = (msg.value == HEATING ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"thermostatSetpointMode\") {\n v.value = (msg.value != FOLLOW_SCHEDULE ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"touch\") {\n v.value = (msg.value != TOUCHED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"optimisation\") {\n v.value = (msg.value == ACTIVE ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"windowFunction\") {\n v.value = (msg.value == ACTIVE ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"water\") {\n v.value = (msg.value == WET ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"windowShade\") {\n v.value = (msg.value == CLOSED ? 1 : 0);\n v.isBinary = true;\n}\n\nelse if(msg.name == \"threeAxis\") {\n var vz = msg.value.split(',');\n var x = vz[0];\n var y = vz[1];\n var z = vz[2];\n v.value = {\n x: vz[0],\n y: vz[1],\n z: vz[2]\n };\n v.isBinary = false;\n}\nelse if (msg.value.match(/.*[^0-9\\.,-].*/)) { // match if any characters are not digits, period, comma, or hyphen.\n v.value = '\"' + msg.value + '\"';\n v.isBinary = false;\n}\n\n// Catch any other general numerical event (carbonDioxide, power, energy, humidity, level, temperature, ultravioletIndex, voltage, etc).\nelse {\n v.value = Number(msg.value);\n v.isBinary = false;\n}\nif (msg.name == \"threeAxis\"){\n msg.payload = [\n {\n measurement: msg.name,\n fields: {\n valueX: v.value.x,\n valueY: v.value.y,\n valueZ: v.value.z\n },\n tags:{\n hub: msg.hubId ? msg.hubId : \"HE1\",\n deviceId: msg.deviceId,\n displayName: msg.displayName,\n unit: msg.unit\n },\n timestamp: new Date()\n }\n ]\n} else if (v.isBinary)\n{\n msg.payload = [\n {\n measurement: msg.name,\n fields: {\n value: msg.value,\n valueBinary: v.value\n },\n tags:{\n hub: msg.hubId ? msg.hubId : \"HE1\",\n deviceId: msg.deviceId,\n displayName: msg.displayName,\n unit: msg.unit\n },\n timestamp: new Date()\n }\n ] \n}\nelse\n{\n msg.payload = [\n {\n measurement: msg.name,\n fields: {\n value: (Array.isArray(v.value) ? v.value.join(',') : v.value),\n },\n tags:{\n hub: msg.hubId ? msg.hubId : \"HE1\",\n deviceId: msg.deviceId,\n displayName: msg.displayName,\n unit: msg.unit\n },\n timestamp: new Date()\n }\n ]\n}\n//console.log(util.inspect(msg, {showHidden: false, depth: null}))\n\nreturn msg;","outputs":1,"noerr":0,"x":588,"y":96,"wires":[["b57f888.d44e978"]]}]