Resultados 26 al 31 de 31
- 29/03/2021, 14:51 #26
Re: [NODERED] Connection with Axperts per RJ45 serial port (PCM60X and the rest)
Follow on this trhead: https://www.solarweb.net/forosolar/f...tml#post412259
NODERED y el Autoconsumo Fotovoltaico
NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.
-
- 14/04/2021, 14:09 #27Forero Junior
- Fecha de ingreso
- feb 2021
- Ubicación
- Seafield, South Africa
- Mensajes
- 10
Re: [NODERED] Conexion con Axperts por puerto serie RJ45 (PCM60X y el resto)
Hi Tejota
I have now finished my Node-Red Dash board to monitor the Axpert MAX and the Pylon Batteries.
Do you have a thread somewhere that explains how you control the inverter ie update values on the inverter setting?
- 03/05/2021, 12:40 #28Forero Junior
- Fecha de ingreso
- feb 2021
- Ubicación
- Agudo
- Mensajes
- 4
Re: [NODERED] Conexion con Axperts por puerto serie RJ45 (PCM60X y el resto)
Hola muy buenas a todos. Me presento soy Gonzalo y e adquirido un Voltronic axpert vm3
os comento mi problema haber si alguien me puede ayudar. Me e comprado un cable usb a rs 232 lo conecto a mi pc
pero usando el wachpower no consigo conectar el inversor nunca leo nada. por bluetoot con la app si consigo conectarme.
E instalado node red para intentar hacer lo que vosotros haceis pero ni aun asi recibo nada en la pantalla del puerto serie.
¿alguien puede decirme que estoy haciendo mal?
Cuando solucione eso seguire intentado y ya ir depurando datos del inversor pero poco a poco
Gracias por la ayuda
- 04/05/2021, 11:14 #29Forero Junior
- Fecha de ingreso
- feb 2021
- Ubicación
- Seafield, South Africa
- Mensajes
- 10
Re: [NODERED] Connection with Axperts per RJ45 serial port (PCM60X and the rest)
Hi Gonzalo
Look at the post earlier on in this topic from Tejota message #10... you need to inject some data into the inverter for it to respond.
Copy the nodered flow from this message #10 and use it to start your testing...
Código HTML:[{"id":"19564b21.32eff5","type":"tab","label":"Voltronic MKS por Serie","disabled":false,"info":""},{"id":"d4cfefe9.02213","type":"inject","z":"19564b21.32eff5","name":"QPIRI Configuracion","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"7","crontab":"","once":false,"onceDelay":0.1,"topic":"Configuracion","payload":"QPIRI","payloadType":"str","x":160,"y":700,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"d9f62829.05de08","type":"inject","z":"19564b21.32eff5","name":"QFLAG Miscelanea","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"7","crontab":"","once":false,"onceDelay":0.1,"topic":"Miscelanea","payload":"QFLAG","payloadType":"str","x":160,"y":660,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"2d7e0c41.621c44","type":"inject","z":"19564b21.32eff5","name":"QBEQI Ecualizacion Bateria","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"Ecualizacion Bateria","payload":"QBEQI","payloadType":"str","x":190,"y":740,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"5ecd3155.2c11b","type":"inject","z":"19564b21.32eff5","name":"QPIWS Informacion Warnings","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":false,"onceDelay":0.1,"topic":"Informacion Warnings","payload":"QPIWS","payloadType":"str","x":190,"y":780,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"61b5f624.ac2ff8","type":"inject","z":"19564b21.32eff5","name":"QPIGS Estado General","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Estado General","payload":"QPIGS","payloadType":"str","x":170,"y":540,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"61774ebc.bdb58","type":"inject","z":"19564b21.32eff5","name":"QID Numero de Serie","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"Numero de Serie","payload":"QID","payloadType":"str","x":160,"y":500,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"f2b7cde4.f8323","type":"function","z":"19564b21.32eff5","name":"CRCTJ","func":" // Algoritmo para lanzar los comandos hacia Voltronics por puerto serie con CRC propietario\n // Algoritmo realizado por Tejota [email protected]\n var topic = (msg.payload) + (\" \") + (msg.topic); // Topic con el comando string y posible descripcion\n var comandobuffer = Buffer.from(msg.payload); // pasando a buffer el string del comando \n var crc = 0x0000; // inicio del crc\n for (tj = 0; tj < comandobuffer.length; tj++) // scaneo del buffer\n {\n const byte = comandobuffer[tj]; // analizando el byte para aplicarle el crc16xmodem\n tejota = (crc >>> 8) & 0xff;\n tejota ^= byte & 0xff;\n tejota ^= tejota >>> 4;\n crc = (crc << 8) & 0xffff; // Algoritmo\n crc ^= tejota; // crc16 xmodem \n tejota = (tejota << 5) & 0xffff; // sin tabla estatica\n crc ^= tejota;\n tejota = (tejota << 7) & 0xffff;\n crc ^= tejota;\n } // resultante crc numerico \n var crchexastring = crc.toString(16).padStart(4,'0'); // crc numerico a string hexa añadiendo ceros a izquierda si es preciso\n var crchexabuffer = Buffer.from(crchexastring, \"hex\"); // buffer del crchexa\n for (mdk=0; mdk < crchexabuffer.length; mdk++) // scaneo del buffer\n {\n if (crchexabuffer[mdk]==10 || crchexabuffer[mdk]==13 || crchexabuffer[mdk]==40) // Exceptuando estos bytes mdk \n {\n crchexabuffer[mdk]++; // se pone el byte siguiente si es alguno de las excepciones mdk\n }\n } \n const retornodecarro = Buffer.from(\"\\r\");\n var crctotalbuffer = [comandobuffer, crchexabuffer, retornodecarro]; // construyendo el buffer final hacia el hibrido\n msg.payload = Buffer.concat(crctotalbuffer);\n msg.topic = topic;\n return msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":300,"y":160,"wires":[["7545bcea.c00be4"]]},{"id":"3e8e715b.5ee93e","type":"debug","z":"19564b21.32eff5","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1170,"y":580,"wires":[]},{"id":"458ab114.214cc","type":"inject","z":"19564b21.32eff5","name":"QVFW Firmware CPU1","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"Version CPU1","payload":"QVFW","payloadType":"str","x":170,"y":580,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"ebc28d21.a11f6","type":"inject","z":"19564b21.32eff5","name":"QVFW2 Firmware CPU2","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"Firmware CPU2","payload":"QVFW2","payloadType":"str","x":170,"y":620,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"cd3d2ac7.1d46a8","type":"link out","z":"19564b21.32eff5","name":"ParaCRCTJ","links":["319f8dab.b39e82"],"x":430,"y":660,"wires":[],"l":true},{"id":"29d04a1f.362d16","type":"comment","z":"19564b21.32eff5","name":"Comandos de monitorizacion","info":"Comandos de Monitorizacion","x":160,"y":460,"wires":[]},{"id":"319f8dab.b39e82","type":"link in","z":"19564b21.32eff5","name":"CRCTJWelcome","links":["cd3d2ac7.1d46a8"],"x":140,"y":160,"wires":[["f2b7cde4.f8323"]],"l":true},{"id":"37e0fc60.268e84","type":"link out","z":"19564b21.32eff5","name":"ParaExtractores","links":["9d52fd26.2692a"],"x":700,"y":160,"wires":[],"l":true},{"id":"3853f47d.20b97c","type":"switch","z":"19564b21.32eff5","name":"Repartidor Datos Lecturas","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"QID","vt":"str"},{"t":"cont","v":"QPIGS","vt":"str"},{"t":"cont","v":"CPU1","vt":"str"},{"t":"cont","v":"QVFW2","vt":"str"},{"t":"cont","v":"QFLAG","vt":"str"},{"t":"cont","v":"QPIRI","vt":"str"},{"t":"cont","v":"QBEQI","vt":"str"},{"t":"cont","v":"QPIWS","vt":"str"},{"t":"cont","v":"QMOD","vt":"str"}],"checkall":"true","repair":false,"outputs":9,"x":390,"y":360,"wires":[["7e3afdaa.d84a14"],["352dccd5.c07ce4"],["7fe9a5f8.3302dc"],["505dc93e.025028"],["2e34f984.dd4516"],["b11d5d54.57ada"],["fb4c23a9.f5653"],["5592a1b4.8fc35"],["dcec16ee.014fd8"]]},{"id":"9d52fd26.2692a","type":"link in","z":"19564b21.32eff5","name":"ExtractoresWelcome","links":["37e0fc60.268e84"],"x":150,"y":360,"wires":[["3853f47d.20b97c"]],"l":true},{"id":"7163cfa9.53c4d","type":"comment","z":"19564b21.32eff5","name":"Repartiendo por topic","info":"","x":380,"y":260,"wires":[]},{"id":"2e34f984.dd4516","type":"function","z":"19564b21.32eff5","name":"QFLAGExtraccion","func":"var output = msg.payload.substr(1, 11);\nvar E = output.indexOf(\"E\")+1;\nvar D = output.indexOf(\"D\");\nvar enables = output.substr(E, (D-E));\nvar disables = output.substr(D+1);\nswitch (enables.includes(\"a\")){\n case true:\n buzzer = 1;\n break;\n case false: \n buzzer = 0;\n} \nswitch (enables.includes(\"b\")){\n case true:\n bypassoverload = 1;\n break;\n case false:\n bypassoverload = 0;\n break;\n} \nswitch (enables.includes(\"k\")){\n case true:\n guardapantallalcd = 1;\n break;\n case false: \n guardapantallalcd = 0;\n} \nswitch (enables.includes(\"j\")){\n case true:\n powersaving = 1;\n break;\n case false:\n powersaving = 0;\n break;\n} \nswitch (enables.includes(\"u\")){\n case true:\n overloadrestart = 1;\n break;\n case false: \n overloadrestart = 0;\n} \nswitch (enables.includes(\"v\")){\n case true:\n overtemperaturerestart = 1;\n break;\n case false:\n overtemperaturerestart = 0;\n break;\n}\nswitch (enables.includes(\"x\")){\n case true:\n luzlcd = 1;\n break;\n case false:\n luzlcd = 0;\n break;\n} \nswitch (enables.includes(\"y\")){\n case true:\n pitidosifuenteprimariafalla = 1;\n break;\n case false:\n pitidosifuenteprimariafalla = 0;\n break;\n} \nswitch (enables.includes(\"z\")){\n case true:\n grabarerrores = 1;\n break;\n case false:\n grabarerrores = 0;\n break;\n} \nreturn [\n {\n payload: {\n buzzer: buzzer,\n bypassoverload: bypassoverload,\n guardapantallalcd: guardapantallalcd,\n powersaving: powersaving,\n overloadrestart: overloadrestart,\n overtemperaturerestart: overtemperaturerestart,\n luzlcd: luzlcd,\n pitidosifuenteprimariafalla: pitidosifuenteprimariafalla,\n grabarerrores: grabarerrores,\n }\n }\n]\n","outputs":1,"noerr":0,"x":650,"y":420,"wires":[["2cb73b17.d23c34"]]},{"id":"352dccd5.c07ce4","type":"function","z":"19564b21.32eff5","name":"QPIGSExtraccion","func":"var output = msg.payload.split(\" \");\nlet voltajered = parseFloat(output[0].slice(1, 5));\nlet frecuenciared = parseFloat(output[1]);\nlet voltajesalida = parseFloat(output[2]);\nlet frecuenciasalida = parseFloat(output[3]);\nlet potenciaparentesalida = parseInt(output[4]);\nlet potenciaactivasalida = parseInt(output[5]);\nlet porcentajecargasalida = parseInt(output[6]);\nlet voltajebusalta = parseInt(output[7]);\nlet voltajebateria = parseFloat(output[8]);\nlet amperioscargabat = parseInt(output[9]);\nlet capacidadbateria = parseInt(output[10])\nlet temperaturainversor = parseInt(output[11]);\nlet amperiosenplaca = parseInt(output[12]);\nlet voltajeenplaca = parseInt(output[13]);\nlet voltajescc = parseFloat(output[14]);\nlet amperiosdescargabat = parseInt(output[15]);\nlet prioridadSBU = parseInt(output[16].slice(0,1));\nlet estadoconf = parseInt(output[16].slice(1,2));\nlet estadoscc = parseInt(output[16].slice(2,3));\nlet cargasconectadas = parseInt(output[16].slice(3,4));\nlet voltajeconstantemientrascarga = parseInt(output[16].slice(4,5));\nlet estadodecargageneral = parseInt(output[16].slice(5,6));\nlet estadodecargasolar = parseInt(output[16].slice(6,7));\nlet estadodecargared = parseInt(output[16].slice(7,9));\nlet potenciaenplaca = parseInt(output[19]);\nlet estadodelmppt = parseInt(output[20].slice(0,1));\nlet estadodelswitch = parseInt(output[20].slice(1,2));\n/*var numerodeserie = flow.get(numerodeserie);*/\nreturn [\n {\n payload: {\n voltajered: voltajered,\n frecuenciared: frecuenciared,\n voltajesalida: voltajesalida,\n frecuenciasalida: frecuenciasalida,\n potenciaparentesalida: potenciaparentesalida,\n potenciaactivasalida: potenciaactivasalida,\n porcentajecargasalida: porcentajecargasalida,\n voltajebateria: voltajebateria,\n amperiosdescargabat: amperiosdescargabat,\n amperioscargabat: amperioscargabat,\n temperaturainversor: temperaturainversor,\n potenciaenplaca: potenciaenplaca,\n voltajeenplaca: voltajeenplaca,\n estadodelmppt: estadodelmppt,\n cargasconectadas: cargasconectadas,\n voltajebusalta: voltajebusalta,\n capacidadbateria: capacidadbateria,\n amperiosenplaca: amperiosenplaca, \n voltajescc: voltajescc,\n prioridadSBU: prioridadSBU,\n estadoconf: estadoconf,\n estadoscc: estadoscc,\n voltajeconstantemientrascarga: voltajeconstantemientrascarga,\n estadodecargageneral: estadodecargageneral,\n estadodecargasolar: estadodecargasolar,\n estadodecargared: estadodecargared,\n estadodelswitch: estadodelswitch\n } ,\n/* topic: {numerodeserie: numerodeserie}*/\n }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":650,"y":300,"wires":[["2cb73b17.d23c34"]]},{"id":"b11d5d54.57ada","type":"function","z":"19564b21.32eff5","name":"QPIRIExtraccion","func":"var output = msg.payload.split(\" \");\nlet voltajeredconf = parseFloat((output[0].slice(1, 5)));\nlet amperiosredmaxconf = parseFloat(output[1]);\nlet voltajesalidaconf = parseFloat(output[2]);\nlet frecuenciasalidaconf = parseFloat(output[3]);\nlet amperiossalidaconf = parseFloat(output[4]);\nlet potenciaaparentesalidaconf = parseFloat(output[5]);\nlet potenciaactivasalidaconf = parseFloat(output[6]);\nlet voltajebateriaconf = parseInt(output[7]);\nlet voltajelimitedescargabatconf = parseFloat(output[8]);\nlet voltajelimiterecargabatconf = parseFloat(output[22]);\nlet voltajeminimoparacorteconf = parseFloat(output[9]);\nlet voltajeabsorcionconf = parseFloat(output[10]);\nlet voltajeflotacionconf = parseFloat(output[11]);\nlet tipodebateriaconf = parseInt(output[12]);\nlet amperiosmaxcargadorbatconf = parseInt(output[13]);\nlet amperiosmaxtotalesabatconf = parseInt(output[14]);\nlet rangovoltajedentradaconf = parseInt(output[15]);\nlet prioridadfuentesalidaconf = parseInt(output[16]);\nlet prioridadcargadorbatconf = parseInt(output[17]);\nlet maximonumeroparalelosconf = parseInt(output[18]);\nlet tipodemaquina = parseInt(output[19]);\nlet tipodehibridoconf = parseInt(output[20]);\nlet tipodesalidaparaleloconf = parseInt(output[21]);\nlet potenciasolarparaleloconf = parseInt(output[23]);\nlet potenciasolarbalanceconf = parseInt(output[24]);\nreturn [\n {\n payload: {\n voltajeredconf: voltajeredconf,\n amperiosredmaxconf: amperiosredmaxconf,\n voltajesalidaconf: voltajesalidaconf,\n frecuenciasalidaconf: frecuenciasalidaconf,\n amperiossalidaconf: amperiossalidaconf,\n potenciaaparentesalidaconf: potenciaaparentesalidaconf,\n potenciaactivasalidaconf: potenciaactivasalidaconf,\n voltajebateriaconf: voltajebateriaconf,\n voltajelimiterecargabatconf: voltajelimiterecargabatconf,\n voltajelimitedescargabatconf: voltajelimitedescargabatconf,\n voltajeminimoparacorteconf: voltajeminimoparacorteconf,\n voltajeabsorcionconf: voltajeabsorcionconf,\n voltajeflotacionconf: voltajeflotacionconf,\n tipodebateriaconf: tipodebateriaconf,\n amperiosmaxcargadorbatconf: amperiosmaxcargadorbatconf,\n amperiosmaxtotalesabatconf: amperiosmaxtotalesabatconf,\n rangovoltajedentradaconf: rangovoltajedentradaconf,\n prioridadfuentesalidaconf: prioridadfuentesalidaconf,\n prioridadcargadorbatconf: prioridadcargadorbatconf,\n maximonumeroparalelosconf: maximonumeroparalelosconf,\n tipodemaquina: tipodemaquina,\n tipodehibridoconf: tipodehibridoconf,\n tipodesalidaparaleloconf: tipodesalidaparaleloconf,\n potenciasolarparaleloconf: potenciasolarparaleloconf,\n potenciasolarbalanceconf: potenciasolarbalanceconf\n }\n }\n]","outputs":1,"noerr":0,"x":640,"y":460,"wires":[["2cb73b17.d23c34"]]},{"id":"7fe9a5f8.3302dc","type":"function","z":"19564b21.32eff5","name":"QVFW Extraccion U1","func":"var output = msg.payload;\nlet Firmware = (output.slice(10, 15));\nreturn [\n {\n payload: {\n Firmware: Firmware\n }\n }\n]","outputs":1,"noerr":0,"x":660,"y":340,"wires":[["2cb73b17.d23c34"]]},{"id":"505dc93e.025028","type":"function","z":"19564b21.32eff5","name":"QVFW2 Firmware U2","func":"var output = msg.payload;\nlet Firmware2 = (output.slice(11, 16));\nreturn [\n {\n payload: {\n Firmware2: Firmware2\n }\n }\n]","outputs":1,"noerr":0,"x":660,"y":380,"wires":[["2cb73b17.d23c34"]]},{"id":"fb4c23a9.f5653","type":"function","z":"19564b21.32eff5","name":"QBEQI Ecu Extrac","func":"var output = msg.payload.split(\" \");\nlet activacionecualizacion = parseInt(output[0].slice(1, 2));\nlet tiempoecualizacion = parseInt(output[1]);\nlet diasentreecualizaciones = parseInt(output[2]);\nlet maxamperiosparaecualizar = parseInt(output[3]);\nlet diasquefaltanparaecualizar = parseInt(output[4]);\nlet voltajedeecualizacion = parseFloat(output[5]);\nlet tiempodeabsorcion = parseInt(output[6]);\nlet timeoutecualizacion = parseInt(output[7]);\nreturn [\n {\n payload: {\n activacionecualizacion: activacionecualizacion,\n tiempoecualizacion: tiempoecualizacion,\n diasentreecualizaciones: diasentreecualizaciones,\n maxamperiosparaecualizar: maxamperiosparaecualizar,\n diasquefaltanparaecualizar: diasquefaltanparaecualizar,\n voltajedeecualizacion: voltajedeecualizacion,\n tiempodeabsorcion: tiempodeabsorcion,\n timeoutecualizacion: timeoutecualizacion\n }\n }\n]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":650,"y":500,"wires":[["2cb73b17.d23c34"]]},{"id":"7e3afdaa.d84a14","type":"function","z":"19564b21.32eff5","name":"QID Nº Serie Extrac","func":"var numerodeserie = msg.payload.slice(1, 15);\nflow.set('numerodeserie', numerodeserie);\nreturn [\n {\n payload: {\n numerodeserie: numerodeserie\n }\n }\n];\n// Numero de Serie va a flow o incluso podria ir a global para identificar en paralelos ","outputs":1,"noerr":0,"initialize":"","finalize":"","x":660,"y":260,"wires":[["2cb73b17.d23c34"]]},{"id":"f25ab0ee.65fde","type":"comment","z":"19564b21.32eff5","name":"Extractores","info":"","x":670,"y":220,"wires":[]},{"id":"5592a1b4.8fc35","type":"function","z":"19564b21.32eff5","name":"QPIWS Warnings Extrac","func":"var output = msg.payload;\nlet reservado = parseInt(output.slice(1, 2));\nlet falloinversor = parseInt(output.slice(2, 3));\nlet fallo08voltajebusalto = parseInt(output.slice(3, 4));\nlet fallo52voltajebusbajo = parseInt(output.slice(4, 5));\nlet fallo09softwarebus = parseInt(output.slice(5, 6));\nlet peligronoacinput = parseFloat(output.slice(6, 7));\nlet peligrocortopv = parseInt(output.slice(7, 8));\nlet fallo58voltajeinversorbajo = parseInt(output.slice(8, 9));\nlet fallo06voltajeinversoralto = parseInt(output.slice(9, 10));\nlet peligro02sobretemperatura = parseInt(output.slice(10, 11));\nlet peligro01ventilador = parseInt(output.slice(11, 12));\nlet peligro03altovoltajebateria = parseInt(output.slice(12, 13));\nlet peligro04bajovoltajebateria = parseInt(output.slice(13, 14));\nlet peligro07sobrecargar = parseInt(output.slice(14, 15));\nlet peligrobateriashutdown = parseInt(output.slice(15, 16));\nlet peligro10bateriaderating = parseInt(output.slice(16, 17));\nlet peligroeeprom = parseInt(output.slice(17, 18));\nlet fallo51sobrecorriente = parseInt(output.slice(18, 19));\nlet fallosoftwareinversor = parseInt(output.slice(19, 20));\nlet falloautotest = parseInt(output.slice(20, 21));\nlet fallo55continuaenac = parseInt(output.slice(21, 22));\nlet fallo56bateriaabierta = parseInt(output.slice(22, 23));\nlet fallo57sensorcorriente = parseInt(output.slice(23, 24));\nlet fallocortobateria = parseInt(output.slice(24, 25));\nlet peligrolimitepotencia = parseInt(output.slice(25, 26));\nlet peligro13altovoltajeplaca = parseInt(output.slice(26, 27));\nlet fallompptsobrecarga = parseInt(output.slice(27, 28));\nlet peligro14mpptsobrecarga = parseInt(output.slice(28, 29));\nlet peligro12bateriabajaparamppt = parseInt(output.slice(29, 30));\nreturn [\n {\n payload: {\n falloinversor: falloinversor,\n fallo08voltajebusalto: fallo08voltajebusalto,\n fallo52voltajebusbajo: fallo52voltajebusbajo,\n fallo09softwarebus: fallo09softwarebus,\n peligronoacinput: peligronoacinput,\n peligrocortopv: peligrocortopv,\n fallo06voltajeinversoralto: fallo06voltajeinversoralto,\n peligro02sobretemperatura: peligro02sobretemperatura,\n peligro01ventilador: peligro01ventilador,\n peligro03altovoltajebateria: peligro03altovoltajebateria,\n peligro04bajovoltajebateria: peligro04bajovoltajebateria,\n peligro07sobrecargar: peligro07sobrecargar,\n peligrobateriashutdown: peligrobateriashutdown,\n peligro10bateriaderating: peligro10bateriaderating,\n peligroeeprom: peligroeeprom,\n fallo51sobrecorriente: fallo51sobrecorriente,\n fallosoftwareinversor: fallosoftwareinversor,\n falloautotest: falloautotest,\n fallo55continuaenac: fallo55continuaenac,\n fallo56bateriaabierta: fallo56bateriaabierta,\n fallo57sensorcorriente: fallo57sensorcorriente,\n fallocortobateria: fallocortobateria,\n peligro13altovoltajeplaca: peligro13altovoltajeplaca,\n fallompptsobrecarga: fallompptsobrecarga,\n peligro14mpptsobrecarga: peligro14mpptsobrecarga,\n peligro12bateriabajaparamppt: peligro12bateriabajaparamppt\n }\n }\n]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":670,"y":540,"wires":[["2cb73b17.d23c34"]]},{"id":"2cb73b17.d23c34","type":"join","z":"19564b21.32eff5","name":"Juntando Todo 4 s","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"4","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":910,"y":380,"wires":[["565c63f0.2649fc"]]},{"id":"ea295d26.2fccd","type":"link out","z":"19564b21.32eff5","name":"TodasLecturasHibrido","links":[],"x":1060,"y":460,"wires":[],"l":true},{"id":"4bcb3d1b.5ea574","type":"comment","z":"19564b21.32eff5","name":"Creando Objeto con todas las lecturas del Hibrido","info":"","x":1040,"y":320,"wires":[]},{"id":"565c63f0.2649fc","type":"function","z":"19564b21.32eff5","name":"Id en topic num serie","func":"var topic = flow.get('numerodeserie');\nmsg.topic = topic;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1120,"y":380,"wires":[["ea295d26.2fccd","3e8e715b.5ee93e"]]},{"id":"fc5f3dc3.947c9","type":"inject","z":"19564b21.32eff5","name":"QMOD Modo de Trabajo","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":false,"onceDelay":0.1,"topic":"Modo de Trabajo","payload":"QMOD","payloadType":"str","x":170,"y":820,"wires":[["cd3d2ac7.1d46a8"]]},{"id":"dcec16ee.014fd8","type":"function","z":"19564b21.32eff5","name":"QMOD Extractor","func":"var output = msg.payload;\nlet mododetrabajo = output.slice(1, 2);\nreturn [{\n payload: {\n mododetrabajo: mododetrabajo\n }\n }\n ];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":640,"y":580,"wires":[["2cb73b17.d23c34"]]},{"id":"f8fed9b0.a2c708","type":"comment","z":"19564b21.32eff5","name":"RS232-USB PL2303 or FTDI Conversor","info":"","x":490,"y":100,"wires":[]},{"id":"7545bcea.c00be4","type":"serial request","z":"19564b21.32eff5","name":"","serial":"88ec1814.a229c8","x":490,"y":160,"wires":[["37e0fc60.268e84"]]},{"id":"88ec1814.a229c8","type":"serial-port","z":"","serialport":"/dev/ttyUSB0","serialbaud":"2400","databits":"8","parity":"none","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"\\r","bin":"false","out":"char","addchar":"","responsetimeout":"1000"}]
- 07/07/2021, 23:03 #30Forero Junior
- Fecha de ingreso
- mar 2016
- Ubicación
- bizkaia
- Mensajes
- 24
Re: [NODERED] Conexion con Axperts por puerto serie RJ45 (PCM60X y el resto)
Hola Tejota, muchas gracias por este post.
Actualmente tengo NODERED instalado en una maquina virtual de esas "free", junto con mosquitto y grafana para mis cositas de casa.
Estaba pensando, por hacerlo sencillo en lo siguiente:
1. instalar en un esp8266 el firmware tasmota con la opcion serial bridge por mqtt.
2. añadir un max3232 a ese esp8266 y conectar al pinout del RJ45 de un inversor voltronic axpert
3. tasmota me reenviará todo al MQTT, y viceversa, desde MQTT al tasmota y éste al inversor
4. y ya en NodeRed extraes la info, CRC, etc... y/o envias ordendes sencillas al inversor.
De este modo, si algun dia quiero añadir una funcion, me la hago en nodered y no tengo que actualizar el firmware del esp8266.
El caso es que tengo alguna duda.
1. Podemos alimentar (con el correspondiente regulador de tension) el MAX3232 y el ESP8266 desde el puerto RJ45? Que pines se deben utilizar?
2. Y la otra, que no acabo de encontrar en la web facil, cual es el pin out del conector RJ45 de estos inversores?
Sabes alguna de ellas?
Gracias.
- 15/07/2021, 19:43 #31Forero Junior
- Fecha de ingreso
- jul 2021
- Mensajes
- 1
Re: [NODERED] Conexion con Axperts por puerto serie RJ45 (PCM60X y el resto)
Hola buenas, primero felicitar a tejota por los tutoriales y vídeos con los que voy aprendiendo cosillas jeje, además de Víctor que le sigo en Youtube.
Tengo un powerwall de.celdas recicladas compuesto por dos baterías en paralelo de 7s 150p pero montada en módulo cerrado ( lo cual tengo intención de cambiar) con 13 placas de 265 w y un axpert vmIII a 24v y quiero monitorizar lo con nodered, antes tuve ICC solar y emoncms pero nunca termino de gustarme, así que tengo la Raspberry y he cogido el conversor de serie a USB.
Mi pregunta es cómo se cuáles son los cables que salen del rj45 para conectar al conversor
Muchas gracias y un saludo