Cómo enviar información BMS DIYBMS a influxdb
Introducción
DIYBms es una BMS con balanceo activo de celdas. Un proyecto OpenSource muy muy interesante, para quien no lo conozca y haya llegado hasta aquí buscando información sobre BMS le aconsejamos que visite su web https://github.com/stuartpittaway/diyBMSv4
Cargar el flow en node red
Abrimos node red (Recuerda que accedemos a ella introduciendo la IP de nuestra raspberry seguido de :1880) y procedemos a cargar el flow que leerá del MQTT y cargará los datos en influxdb
A continuación cargamos el flow que os adjuntamos de la siguiente manera:
Introducimos en el recuadro siguiente texto (lo copiamos con control +c) y lo pegamos en el recuadro (con control + v):
[{"id":"1d773cc6.21a0d3","type":"tab","label":"DIY","disabled":false,"info":""},{"id":"f0856e74.44317","type":"mqtt in","z":"1d773cc6.21a0d3","name":"DIYBms","topic":"diybms/0/#","qos":"2","datatype":"json","broker":"fd25a653.0d5668","nl":false,"rap":true,"rh":0,"x":110,"y":160,"wires":[["5b08a2f3.316c8c","63350ecc.80bd2"]]},{"id":"5b08a2f3.316c8c","type":"debug","z":"1d773cc6.21a0d3","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":840,"y":160,"wires":[]},{"id":"63350ecc.80bd2","type":"function","z":"1d773cc6.21a0d3","name":"","func":"//recuperamos el subtopic, para saber que celda está tratando\n\nvar celda = msg.topic.split(\"/\");\nvar diy = msg.payload;\n\nmsg.payload = {};\n\n//msg.payload.celda = celda[2]+1;\n\nmsg.measurement = \"Celda\"+(parseInt(celda[2])+1);\nmsg.payload.voltage = diy.voltage;\nmsg.payload.vMax = diy.vMax;\nmsg.payload.vMin = diy.vMin;\nmsg.payload.inttemp = diy.inttemp;\nmsg.payload.exttemp = diy.exttemp; \nmsg.payload.bypass = diy.bypass; \nmsg.payload.PWM = diy.PWM;\nmsg.payload.bypassT = diy.bypassT;\nmsg.payload.bpc = diy.bpc;\nmsg.payload.mAh = diy.mAh;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":280,"wires":[["5b7470c.3a3d59","484aa92c.a3b328"]]},{"id":"5b7470c.3a3d59","type":"debug","z":"1d773cc6.21a0d3","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":710,"y":240,"wires":[]},{"id":"484aa92c.a3b328","type":"influxdb out","z":"1d773cc6.21a0d3","influxdb":"b42743c9.15035","name":"","measurement":"","precision":"","retentionPolicy":"","database":"casa","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":1140,"y":380,"wires":[]},{"id":"b200f4f.9049508","type":"comment","z":"1d773cc6.21a0d3","name":"Autor @ea4gkq","info":"Si te interesa la domotica no dejes de visitar\nhttps://t.me/domoticzalospain","x":230,"y":100,"wires":[]},{"id":"f25fdfcd.70141","type":"comment","z":"1d773cc6.21a0d3","name":"https://t.me/domoticzalospain","info":"","x":440,"y":100,"wires":[]},{"id":"fd25a653.0d5668","type":"mqtt-broker","name":"Prueba.158","broker":"192.168.3.158","port":"1883","clientid":"","usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""},{"id":"b42743c9.15035","type":"influxdb","hostname":"192.168.3.11","port":"8086","protocol":"http","database":"CASA","name":"","usetls":false,"tls":"e117f4d3.e6bc88","influxdbVersion":"1.x","url":"http://localhost:8086","rejectUnauthorized":true},{"id":"e117f4d3.e6bc88","type":"tls-config","name":"","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","servername":"mqtt.example.com","verifyservercert":true}]
Y tras pegar el texto clicamos sobre IMPORT:
Veremos que se nos carga una pestaña nueva denominada DIY. Clicamos sobre ella:
Y veremos que se nos carga el flow completo. Recordar que tenéis que editar el suscriptor MQTT para que conecte con vuestro servidor y configurar el conector de influxdb para que conecte con vuestro servidor / base de datos.
Esa función cargará todas las celdas que maneje la BMS de forma automática en vuestro influxdb.