From 47a82d12cd69116ea21fe8f545de570d166d606a Mon Sep 17 00:00:00 2001 From: Jan-Piet Mens Date: Wed, 11 Mar 2020 11:00:37 +0100 Subject: [PATCH] contributed node-red flow closes #331 --- contrib/node-red.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 contrib/node-red.md diff --git a/contrib/node-red.md b/contrib/node-red.md new file mode 100644 index 0000000..c106466 --- /dev/null +++ b/contrib/node-red.md @@ -0,0 +1,7 @@ +Glyn [writes](https://github.com/owntracks/recorder/issues/331): + +The integration was done in quick and hacky way using OVMS V3 server logging to MQTT then using NodeRED so subscribe to the OVMS GPS MQTT topics and then publish these to owntracks recorder MQTT topics in the correct format. I'm happy to share this NodeRED flow but it's probably not the most eligant solution. + +```json +[{"id":"89e9d395.f358","type":"mqtt in","z":"d605de2e.9f01e","name":"","topic":"ovms/emonpi//metric/v/p/latitude","qos":"0","broker":"42d1a439.248b0c","x":200,"y":60,"wires":[["a434b606.26e328"]]},{"id":"c9be458f.e2e928","type":"mqtt in","z":"d605de2e.9f01e","name":"","topic":"ovms/emonpi//metric/v/p/longitude","qos":"0","broker":"42d1a439.248b0c","x":200,"y":100,"wires":[["b2f98901.84ec48"]]},{"id":"dd774d3a.647f2","type":"function","z":"d605de2e.9f01e","name":"context.global.lat","func":"context.global.lat = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":710,"y":80,"wires":[["9656d4f7.b65408"]]},{"id":"3087ba49.6ce996","type":"function","z":"d605de2e.9f01e","name":"context.global.lon","func":"context.global.lon = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":710,"y":120,"wires":[[]]},{"id":"9656d4f7.b65408","type":"debug","z":"d605de2e.9f01e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":930,"y":80,"wires":[]},{"id":"a434b606.26e328","type":"function","z":"d605de2e.9f01e","name":"ignore 0","func":"var value=msg.payload;\n// if (value !==\"\" && value !==\"0\" && value !==0 );{\nif (value){\n return msg;\n}\n","outputs":1,"noerr":0,"x":480,"y":80,"wires":[["dd774d3a.647f2"]]},{"id":"b2f98901.84ec48","type":"function","z":"d605de2e.9f01e","name":"ignore 0","func":"var value=msg.payload;\n// if (value !==\"\" && value !==\"0\" && value !==0 );{\nif (value){\n return msg;\n}\n","outputs":1,"noerr":0,"x":480,"y":120,"wires":[["3087ba49.6ce996"]]},{"id":"f4ec6fc4.4dcaa","type":"inject","z":"d605de2e.9f01e","name":"","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":false,"onceDelay":"60","x":90,"y":260,"wires":[["e9f44233.cddf6"]]},{"id":"a61cddc0.6c138","type":"function","z":"d605de2e.9f01e","name":"create object","func":"var owntracks={_type:\"location\",tst:msg.payload,lat:Number(context.global.lat),lon:Number(context.global.lon)};\nvar newMsg = { payload: JSON.stringify(owntracks) };\nreturn newMsg;","outputs":1,"noerr":0,"x":450,"y":260,"wires":[["4b6d9633.eead28","a5474c90.c79c4","55689f77.2efd3"]]},{"id":"4b6d9633.eead28","type":"debug","z":"d605de2e.9f01e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":930,"y":260,"wires":[]},{"id":"a5474c90.c79c4","type":"mqtt out","z":"d605de2e.9f01e","name":"","topic":"owntracks/my/car","qos":"","retain":"","broker":"834ac211.8eba8","x":730,"y":300,"wires":[]},{"id":"55689f77.2efd3","type":"file","z":"d605de2e.9f01e","name":"","filename":"/data/gps-json.csv","appendNewline":true,"createDir":false,"overwriteFile":"false","x":770,"y":200,"wires":[[]]},{"id":"e9f44233.cddf6","type":"function","z":"d605de2e.9f01e","name":"timestamp in s","func":"// msg.payload = msg.payload/1000;\nmsg.payload = Math.floor(Date.now() / 1000);\nreturn msg;","outputs":1,"noerr":0,"x":260,"y":260,"wires":[["a61cddc0.6c138"]]},{"id":"42d1a439.248b0c","type":"mqtt-broker","z":"","name":"emonpi","broker":"IP-ADDRESS","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"834ac211.8eba8","type":"mqtt-broker","z":"","name":"MQTT-SERVER","broker":"IP-ADDRESS","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}] +```