Página 9 de 33 PrimerPrimer ... 891019 ... ÚltimoÚltimo
Resultados 201 al 225 de 802
  1. #201
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Yo creo que Voltronic con este MAX y con otros modelos, implementando el panel MCU han cruzado la linea roja. Puede que con los que lleven un modulo BT-TTL tengan un pase pq es algo mas complicado saltar a internet pero tambien se puede.
    Perlo los de este MAX ya es wifi puro y duro, es decir, TCPIP y si para activarlo ya tienes que registrarte en sus servidores.... : blanco y en botella.

    Para los profanos, el modulo wifi del MAX activado es como si conectaras el cable USB de tu MAX a Voltronic en China directamente. A ti te dejan usarlo via sus servidores pero ellos se dejan la puerta abierta para lo que estimen oportuno.
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  2. #202
    Pidjey está desconectado Forero
    Fecha de ingreso
    ene 2013
    Ubicación
    Leon
    Mensajes
    1.521

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Yo no he hablado de anonimato ni nada de eso. Yo hablo de si una empresa tiene que recolectar los datos, esta obligadaa pedir tu consentimiento. Si no lo hace, es ilegal. Que se hace muy a menudo sin pedir consentimiento? Por supuesto. En mi empresa se monitorean todos los datos i muchos softwares son bloqueados. Sólo se puede instalar software de la whitelist. De vez en cuando también son despedidos personas espías.

    Pero eso sólo pasa cuando el software es de una compañía que no es de fiar porque hoy en día las multas son muy muy grandes por la ley de protección de datos. Estos datos se tienen que recoger de manera anónima, sino también es ilegal. Los datos no los pueden vender porque también es ilegal. Vuelo a lo mismo, depende de la moral del fabricante el seguir la ley o no.

    Pero ahi vamos al kit de la cuestion. Si no confiamos en que la compañia siga la ley, i a nosotros encima nos molesta, no estamos nosotros fallando al comprar un producto a una compañia de la no nos fiamos i pensamos que lo que hace es ilegal e inmoral?

    Claro que es para ganar dinero. Pero en un mercado donde no hay monopolio ni chiringuitos, un producto peor no te beneficia.

    - - - - - - - - - - - - - - - - - - -

    Lo de las cortinas me ha hecho gracia porque es muy típico en España. En muchos otros países no se usan ni en las plantas bajas. Al final también depende mucho de lo que nos importa o no que nos vean.

  3. #203
    Au-PRX está desconectado Forero
    Fecha de ingreso
    sep 2020
    Ubicación
    Cataluña
    Mensajes
    316

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Pidjey espero no haberte molestado, en ocasiones soy demasiado vehemente,no era esta la intención.

    Cita Iniciado por Pidjey Ver mensaje
    Yo no he hablado de anonimato ni nada de eso. Yo hablo de si una empresa tiene que recolectar los datos, esta obligadaa pedir tu consentimiento. Si no lo hace, es ilegal. Que se hace muy a menudo sin pedir consentimiento? Por supuesto. En mi empresa se monitorean todos los datos i muchos softwares son bloqueados. Sólo se puede instalar software de la whitelist. De vez en cuando también son despedidos personas espías.

    Pero eso sólo pasa cuando el software es de una compañía que no es de fiar porque hoy en día las multas son muy muy grandes por la ley de protección de datos. Estos datos se tienen que recoger de manera anónima, sino también es ilegal. Los datos no los pueden vender porque también es ilegal. Vuelo a lo mismo, depende de la moral del fabricante el seguir la ley o no.

    El problema radica en que todas las empresas están deseando echarle mano a tus datos, dedican mucho esfuerzo para poder obtener esta información, pero nos pretenden hacer pensar que no es nada importante y que no vale nada. Todas las que yo conozco, desde mi punto de vista hacen los justo o incluso un poco menos para no ser denunciada, y redactan verdaderos tratados en confidencialidad de datos informatizados que es casi imposible que una persona normal pueda entender, lo único que entienden es que te dicen que son unos chicos buenos y que eso que se están llevando no es nada, las dos cosas son mentira. Los datos se venden cambian y comparten, te lo puedo asegurar, cuando firmas un contrato de estos, está todo incluido eso si , muy finamente como "sesión" que no parece que sea una venta no sea que pensemos que están ganando dinero con ellos. Los fabricantes en realidad son entidades abstractas, en la mayoría de los casos no son personas físicas, y si tiras de la cuerda y terminas dando con una persona física, es con seguridad un director de X accionista de lo que sea etc, muy alejado de lo que está pasando en el nivel del usuario, estas personas solo saben de resultados , por lo que la aplicación de moral , resulta realmente difícil, solo saben que si no aplican la ley o encuentran como sortearla les puede costar dinero, eso es lo más parecido a moral que pueden manejar, y buscan activamente formas de sortear la ley si es posible, por supuesto



    Cita Iniciado por Pidjey Ver mensaje
    Pero ahi vamos al kit de la cuestion. Si no confiamos en que la compañia siga la ley, i a nosotros encima nos molesta, no estamos nosotros fallando al comprar un producto a una compañia de la no nos fiamos i pensamos que lo que hace es ilegal e inmoral?
    Poner el peso de la responsabilidad en el lado del cliente es como poco sorprendente, cuando una persona compra un aparato, no hay forma de saber que es lo que hace cuando lo conectas a internet, simplemente porque los fabricantes no tienen por qué especificarlo con ese detalle, es absurdo culpar al comprador que solo pretende poner un repetidor wifi en su casa, de no haberse informado correctamente de que esa marcha en realidad es china y mandara a sus servidores telemetría en cuanto la conecta a la red, esto no puede ser así, son las autoridades con las regulaciones legales las que tienen que salvaguardar los interesas de las personas, o tenemos que ser todos ingenieros informáticos y abogados para comprar un aparato? ¡¡¡. Yo solo digo que no esta suficientemente bien regulado, que se permite y casi se anima el tráfico de información de bajo impacto sobre todo en los entornos domésticos, y que esto es algo que para mí es inadmisible , el desconocimiento de los usuarios los deja en una posición de indefensión y es obsceno que los gobiernos no regulen adecuadamente esto.


    Cita Iniciado por Pidjey Ver mensaje
    Claro que es para ganar dinero. Pero en un mercado donde no hay monopolio ni chiringuitos, un producto peor no te beneficia.
    Y siempre que hay alternativas , te aseguro que las uso, una práctica muy recomendable es no poner la seguridad de tu red, en manos de ningún software propietario, solo de código abierto, es la única forma de tener un mínimo de seguridad, de lo contrario estas expuesto, a que esa empresa, o un trabajador desleal, o su competencia o un largo etc, sean responsable y legales, dos cosas que ya sabemos que es imposible, si usas un código publicado libremente, hay una comunidad de desarrolladores (miles) que pueden encontrar puertas traseras problemas etc en ese código y eso es una garantía muy superior a una caja cerrada.

    Hay productos muy buenos, yo diría que de los mejores que existen que no espían sistemáticamente a todo el que los usa, la mayoría de código abierto.

    No estoy en contra de la telemetría, ni mucho menos, esto en contra del abuso, de la usurpación, del robo, y de la violación de la seguridad que algunos aparatos y programas perpetran siempre que pueden.
    Yo monitororeo la actividad de algunas redes y sistemas y utilizo telemetría y datos generados fuera de mi empresa, pero antes tengo que obtener la completa confianza de los dueños legales de esos datos y por supuesto firmar un contrato donde se recoge los termino y usos de esa información. Y claro esta no es un contrato abusivo no hay sesión de datos y es específica exactamente para qué se usan cuanto tiempo se puede usar y como se destruyen después de que el contrato se extinga.

    - - - - - - - - - - - - - - - - - - -
    Nuevamente no pretendo resultar molesto, eso solo una opinión personal.
    La verdad que esto es un pedazo de Off topic importante ... sorry

  4. #204
    Jmart está desconectado Forero Junior
    Fecha de ingreso
    abr 2019
    Ubicación
    Berga
    Mensajes
    6

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    buenas tardes,
    Escribí un post por si alguien me aconsejaba para una instalación aislada de momento solo para fines de semana pero en un futuro próximo 1,5 o 2 años vivienda habitual. con el problema de los tejados este-oeste, creo que necesitaba un equipo de 2 mppt, que podían ser 2 equipos paralelos o un solo equipo como el MAX. dispongo de una bateria NARADA 48NPFC100.
    Leo en el manual que el equipo dispone de comunicación BMS para 3 tipos de baterias de litio, Pylon, Soltaro y weko, sabéis si tiene compatibilidad para otros tipos de baterias de litio, o bien si se puede traducir los comandos haciéndolos compatibles con el RS485 de este equipo.
    Porfa me ilustráis y despejais mis dudas.

  5. #205
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Cita Iniciado por Jmart Ver mensaje
    buenas tardes,
    Escribí un post por si alguien me aconsejaba para una instalación aislada de momento solo para fines de semana pero en un futuro próximo 1,5 o 2 años vivienda habitual. con el problema de los tejados este-oeste, creo que necesitaba un equipo de 2 mppt, que podían ser 2 equipos paralelos o un solo equipo como el MAX. dispongo de una bateria NARADA 48NPFC100.
    Leo en el manual que el equipo dispone de comunicación BMS para 3 tipos de baterias de litio, Pylon, Soltaro y weko, sabéis si tiene compatibilidad para otros tipos de baterias de litio, o bien si se puede traducir los comandos haciéndolos compatibles con el RS485 de este equipo.
    Porfa me ilustráis y despejais mis dudas.
    Creo que han metido mas tipos de baterias... la NARADA no lo se, pero puedes usar el sistema manual para cualquier bateria configurando los voltajes segun fabricante.

    Lo de traducir comandos se puede hacer pero ya necesitas un hardware y un software externo. Que yo sepa el software externo te lo tendrias que hacer tu a no ser que haya alguno hecho.
    Basicamente se trata de ver lo que ordena la bateria y que hace el hibrido y trasladarlo a tu software.

    Yo es que no tengo ningun artilugio de estos de litio pero vamos viendo el trafico y lo que hace el hibrido se podria saber que han implementado.... yo creo que seran sobre todo voltajes y amperajes de carga segun SOC de la bateria.
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  6. #206
    Jmart está desconectado Forero Junior
    Fecha de ingreso
    abr 2019
    Ubicación
    Berga
    Mensajes
    6

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Gracias Tejota, es lo que me temia, en cuanto a software he visto que icc ofrece compatibilidad con narada, aunque donde ira el inversor de momento ni wifi ni movil. Entiendo que lo que venden icc es la Raspberry con el software que se conecta al servidor de icc desde el que puedes visualizar los datos? o tambien los almacena la sd de la raspberry y puedes visualizarlos localmente? Seguramente parecerá una pregunta tonta, pero no estoy demasiado ducho en estos aparatos.

  7. #207
    Au-PRX está desconectado Forero
    Fecha de ingreso
    sep 2020
    Ubicación
    Cataluña
    Mensajes
    316

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Hola Tejota buenos días, tengo una pregunta qué hacerte referente a tu flujo en node red para el Max, sacas dos valores energía diaria producida y energía diaria entregada , la producida creo que entiendo en que consiste, pero la entregada no termino de saber que es ...
    Gracias .

  8. #208
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Cita Iniciado por Au-PRX Ver mensaje
    Hola Tejota buenos días, tengo una pregunta qué hacerte referente a tu flujo en node red para el Max, sacas dos valores energía diaria producida y energía diaria entregada , la producida creo que entiendo en que consiste, pero la entregada no termino de saber que es ...
    Gracias .
    AC OUTPUT
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  9. #209
    Au-PRX está desconectado Forero
    Fecha de ingreso
    sep 2020
    Ubicación
    Cataluña
    Mensajes
    316

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Ok gracias..

  10. #210
    wyrms está desconectado Forero Junior
    Fecha de ingreso
    nov 2020
    Ubicación
    Murcia
    Mensajes
    22

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Hola tejota.

    Acabo de ver la nueva actualizacion del max de 8kw, al parecer han bajado la carga de baterías de 120A. a 80A. como los demás modelos.
    ¿Podrias verificarlo por favor?
    https://autosolar.es/pdf/Axpert-MAX-(8KW)-DS.pdf
    https://www.youtube.com/watch?v=86u_GYmW7uU

    En su pagina en la pestaña caracteristicas pone claro 120A. para el 8kw.
    https://www.mppsolar.com/v3/pip-max/

    Un saludo.

  11. #211
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Cita Iniciado por wyrms Ver mensaje
    Hola tejota.

    Acabo de ver la nueva actualizacion del max de 8kw, al parecer han bajado la carga de baterías de 120A. a 80A. como los demás modelos.
    ¿Podrias verificarlo por favor?
    https://autosolar.es/pdf/Axpert-MAX-(8KW)-DS.pdf
    https://www.youtube.com/watch?v=86u_GYmW7uU

    En su pagina en la pestaña caracteristicas pone claro 120A. para el 8kw.
    https://www.mppsolar.com/v3/pip-max/

    Un saludo.
    Cosas de becarios y los catalogos.

    En la pagina oficial de voltronic ni siquiera han puesto el de 8kW.

    http://voltronicpower.com/content/do...ert_MAX_DS.pdf

    MppSolar es como si fuera un autosolar.... son distribuidores grandes que Voltronic fabrica para ellos.
    Si es de 8 kW tendra 120A a bateria seguro... son las unicas diferencias respecto a los de 7,2kW. Han rellenado el hueco que les quedaban en los IGBTs y el hueco que les quedaba en los mosfets de 48V a bateria. Eso se plasma en firmware y ya tienes el nuevo modelo.
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  12. #212
    wyrms está desconectado Forero Junior
    Fecha de ingreso
    nov 2020
    Ubicación
    Murcia
    Mensajes
    22

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Cita Iniciado por Tejota Ver mensaje
    Cosas de becarios y los catalogos.

    En la pagina oficial de voltronic ni siquiera han puesto el de 8kW.

    http://voltronicpower.com/content/do...ert_MAX_DS.pdf

    MppSolar es como si fuera un autosolar.... son distribuidores grandes que Voltronic fabrica para ellos.
    Si es de 8 kW tendra 120A a bateria seguro... son las unicas diferencias respecto a los de 7,2kW. Han rellenado el hueco que les quedaban en los IGBTs y el hueco que les quedaba en los mosfets de 48V a bateria. Eso se plasma en firmware y ya tienes el nuevo modelo.
    Gracias tejota por contestar, estoy esperando a reformar la casa y poner la instalación fv, y estaba interesado en el de 8kw y al ver la bajada de amperaje me asuste.

    Un saludo.

  13. #213
    menolito está desconectado Forero Junior
    Fecha de ingreso
    jul 2009
    Ubicación
    barcelona
    Mensajes
    10

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Cita Iniciado por Tejota Ver mensaje
    Con esa potencia instalada no creo que tengas problema. Cual es el de 8kw o el de 7,2kw?
    En principio funciona correctamente con las nuevas actualizaciones de firmware. Eso si, vete preparando para tener un "campo de aviacion" dentro de casa. Y no, no hay solucion para esto.
    Hola Tejota, cuando dices campo de aviación quieres decir que genera mucho ruido porque quiero iniciar una instalación Pensando en un VIII de 5000 pero no encuentro los decibelios de genera

  14. #214
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Cita Iniciado por menolito Ver mensaje
    Hola Tejota, cuando dices campo de aviación quieres decir que genera mucho ruido porque quiero iniciar una instalación Pensando en un VIII de 5000 pero no encuentro los decibelios de genera
    El VMIII hace menos ruido que el MAX pq lleva ventiladores mas pqueños pero aun con todo son equipos muy ruidosos. Si lo vas a poner dentro de casa tenlo en cuenta.
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  15. #215
    menolito está desconectado Forero Junior
    Fecha de ingreso
    jul 2009
    Ubicación
    barcelona
    Mensajes
    10

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Gracias, pero seria dentro del un cuartillo de un piso y estoy viendo que tendré que optar por uno más silencioso y más caro creo

  16. #216
    wyrms está desconectado Forero Junior
    Fecha de ingreso
    nov 2020
    Ubicación
    Murcia
    Mensajes
    22

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Cita Iniciado por wyrms Ver mensaje
    Gracias tejota por contestar, estoy esperando a reformar la casa y poner la instalación fv, y estaba interesado en el de 8kw y al ver la bajada de amperaje me asuste.

    Un saludo.
    Hola tejota.

    Les pregunte a los de autosolar y me contestaron que ese modelo en concreto era de 8kw y de 80A de carga a batería, he incluso me pusieron el pdf de las características técnicas, " el cual ya había visto".

    https://autosolar.es/pdf/Axpert-MAX-(8KW)-DS.pdf

    Por un lado entiendo lo que dices de la burocracia interna y retraso en los datos... pero que te afirmen tan rotundo y con ficha técnica que es de 80A. es de suponer que a lo mejor no fabrican los 120A. para todos los distribuidores, ya sea para ser mas estables y no dar problemas y tener cierta confianza con ciertos distribuidores.. no se...

    Un saludo.

  17. #217
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    Cita Iniciado por wyrms Ver mensaje
    Hola tejota.

    Les pregunte a los de autosolar y me contestaron que ese modelo en concreto era de 8kw y de 80A de carga a batería, he incluso me pusieron el pdf de las características técnicas, " el cual ya había visto".

    https://autosolar.es/pdf/Axpert-MAX-(8KW)-DS.pdf

    Por un lado entiendo lo que dices de la burocracia interna y retraso en los datos... pero que te afirmen tan rotundo y con ficha técnica que es de 80A. es de suponer que a lo mejor no fabrican los 120A. para todos los distribuidores, ya sea para ser mas estables y no dar problemas y tener cierta confianza con ciertos distribuidores.. no se...

    Un saludo.
    Es que la estabilidad la dan los 120A y no los 80A. Es decir, es preferible para el hibrido derivar lo maximo hacia bateria que no limitar a 80A un campo total de 8kWp.
    Ese pdf no puede estar bien... y de hecho si tienen alguno de 8kW les preguntaria si el parametro 2 llega a 120A o se queda en 80A. Lo pueden ver en el manual que acompaña al hibrido de 8kW. Si en ese manual pone maximo 120A el pdf que tienen es incorrecto.
    Si no tienen ningun modelo de 8kW logicamente no lo pueden saber.
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  18. #218
    jrsm está desconectado Forero
    Fecha de ingreso
    ene 2018
    Ubicación
    Cadiz
    Mensajes
    60

    Predeterminado Re: [Voltronic] AXPERT MAX review en profundidad

    [Voltronic]  AXPERT MAX  review en profundidad-screenshot_2021-02-04-00-31-09-61.jpg

  19. #219
    Au-PRX está desconectado Forero
    Fecha de ingreso
    sep 2020
    Ubicación
    Cataluña
    Mensajes
    316

    Predeterminado Re: [NODERED] Monitorizacion AXPERT MAX

    Cita Iniciado por Tejota Ver mensaje
    Monitorizacion de un AXPERT MAX mediante NODERED.


    Aunque este modelo dispone de un display inteligente (MCU) capaz de recolectar datos por si solo y de disponer de un gateway wifi con una app china para su control y monitorizacion lo que voy a contar a continuacion sirve tambien para controlar y monitorizar con nuestra propia aplicación sobre un hardware ARM como es una raspberry Pi y un sistema operativo RASPBIAN con NODERED como plataforma de desarrollo de nuestra app.

    La forma de conectarse al MAX es por puerto serie, bien sea desde un conversor USB-RS232 o bien desde un conversor RS-232-TCPIP descritos en los hilos:

    https://www.solarweb.net/forosolar/f...60x-resto.html
    https://www.solarweb.net/forosolar/f...232-tcpip.html

    Como es un hibrido un poco diferente a los offgrid standard, logicamente lleva comandos nuevos de control y monitorizacion.

    Al llevar control de tiempo (fecha y hora) tambien hay comandos nuevos que se basan en esta variable.

    Vamos a comenzar por los flujos de monitorizacion, es decir, de solo lectura. Este hibrido trabaja en protocolo P30.

    Flujo presentado:
    Código HTML:
    [{"id":"9bc9a9f6.d07ec8","type":"tab","label":"Axpert MAX","disabled":false,"info":""},{"id":"509893d1.98ab3c","type":"function","z":"9bc9a9f6.d07ec8","name":"CRCTJ","func":"    //  Algoritmo para lanzar los comandos hacia Voltronics con CRC propietario\n    //  Algoritmo realizado por Tejota   \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":1020,"y":640,"wires":[["8bc4fb15.08c6c8"]]},{"id":"645a2e8b.dcbcb","type":"debug","z":"9bc9a9f6.d07ec8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1590,"y":180,"wires":[]},{"id":"22222d68.bf0a42","type":"link out","z":"9bc9a9f6.d07ec8","name":"Respuesta Puerto serie","links":["4faa967b.783d88"],"x":1410,"y":640,"wires":[],"l":true},{"id":"ff4e665c.3a6d68","type":"comment","z":"9bc9a9f6.d07ec8","name":"Comunicacion Puerto Serie","info":"","x":1190,"y":600,"wires":[]},{"id":"ab516497.6a2e48","type":"switch","z":"9bc9a9f6.d07ec8","name":"Repartidor Datos Lecturas","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"QID Numero de Serie","vt":"str"},{"t":"eq","v":"QPIGS Estado General","vt":"str"},{"t":"eq","v":"QVFW Version CPU1","vt":"str"},{"t":"eq","v":"QVFW3 Firmware CPU3","vt":"str"},{"t":"eq","v":"QFLAG Miscelanea","vt":"str"},{"t":"eq","v":"QPIRI Configuracion","vt":"str"},{"t":"eq","v":"QBEQI Ecualizacion Bateria","vt":"str"},{"t":"eq","v":"QPIWS Informacion Warnings","vt":"str"},{"t":"eq","v":"QMOD Modo de Trabajo","vt":"str"},{"t":"eq","v":"QPIGS2 Campo2","vt":"str"},{"t":"eq","v":"QLED Barra LED","vt":"str"},{"t":"cont","v":"energiaproducidadiaria","vt":"str"},{"t":"cont","v":"cargadiariaentregada","vt":"str"}],"checkall":"true","repair":false,"outputs":13,"x":810,"y":280,"wires":[["9c689710.cb0018"],["e4137dce.db47"],["4423063a.c56eb8"],["198b4fc2.1fca4"],["8d3d9618.158258"],["bd349fa8.774d1"],["dd066a1.e232a98"],["af0311cf.2cd99"],["3a0b2dac.6bc8a2"],["fcd12eb.29738d"],["3b4d261d.daba4a"],["c2c747ec.cc0b58"],["f5269e19.63df9"]]},{"id":"63fac829.9a70a8","type":"comment","z":"9bc9a9f6.d07ec8","name":"Repartiendo por topic","info":"","x":820,"y":160,"wires":[]},{"id":"8d3d9618.158258","type":"function","z":"9bc9a9f6.d07ec8","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":1070,"y":220,"wires":[["40daa278.7eaa8c"]]},{"id":"e4137dce.db47","type":"function","z":"9bc9a9f6.d07ec8","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));\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    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1070,"y":100,"wires":[["40daa278.7eaa8c"]]},{"id":"bd349fa8.774d1","type":"function","z":"9bc9a9f6.d07ec8","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]);\nglobal.set('voltajeabsorcionconfmax0' , voltajeabsorcionconf);\nglobal.set('voltajeflotacionconfmax0' , voltajeflotacionconf);\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,"initialize":"","finalize":"","x":1060,"y":260,"wires":[["40daa278.7eaa8c"]]},{"id":"4423063a.c56eb8","type":"function","z":"9bc9a9f6.d07ec8","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":1080,"y":140,"wires":[["40daa278.7eaa8c"]]},{"id":"198b4fc2.1fca4","type":"function","z":"9bc9a9f6.d07ec8","name":"QVFW3 Firmware U3","func":"var output = msg.payload;\nlet Firmware3 = (output.slice(10, 15));\nreturn [\n    {\n        payload: {\n                Firmware3: Firmware3\n                 }\n    }\n]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1080,"y":180,"wires":[["40daa278.7eaa8c"]]},{"id":"dd066a1.e232a98","type":"function","z":"9bc9a9f6.d07ec8","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":1070,"y":300,"wires":[["40daa278.7eaa8c"]]},{"id":"9c689710.cb0018","type":"function","z":"9bc9a9f6.d07ec8","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":1080,"y":60,"wires":[["40daa278.7eaa8c"]]},{"id":"d4064c8b.a9e53","type":"comment","z":"9bc9a9f6.d07ec8","name":"Extractores","info":"","x":1070,"y":20,"wires":[]},{"id":"af0311cf.2cd99","type":"function","z":"9bc9a9f6.d07ec8","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":1090,"y":340,"wires":[["5b6d382c.101f88"]]},{"id":"40daa278.7eaa8c","type":"join","z":"9bc9a9f6.d07ec8","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":1350,"y":280,"wires":[["d4e52660.0f5988"]]},{"id":"3a0b2dac.6bc8a2","type":"function","z":"9bc9a9f6.d07ec8","name":"QMOD Extractor","func":"var output = msg.payload;\nlet mdts = output.slice(1, 2);\nlet mododetrabajo;\nif (mdts === \"P\") {\n    mododetrabajo = 0;\n} else if (mdts === \"S\") {\n    mododetrabajo = 1;\n} else if (mdts === \"L\") {\n    mododetrabajo = 2;\n} else if (mdts === \"B\") {\n    mododetrabajo = 3;\n} else if (mdts === \"F\") {\n    mododetrabajo = 4;\n} else if (mdts === \"H\") {\n    mododetrabajo = 5;\n}    \nreturn [{\n    payload: {\n         mododetrabajo: mododetrabajo\n             }\n        }\n       ];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1060,"y":380,"wires":[["40daa278.7eaa8c"]]},{"id":"fcd12eb.29738d","type":"function","z":"9bc9a9f6.d07ec8","name":"QPIGS2Extraccion","func":"var output = msg.payload.split(\" \");\nlet amperiosenplaca2 = parseInt(output[0].slice(1, 5));\nlet voltajeenplaca2 = parseInt(output[1]);\nlet potenciaenplaca2 = parseInt(output[2]);\nreturn [\n    {\n        payload: {\n                potenciaenplaca2: potenciaenplaca2,\n                voltajeenplaca2: voltajeenplaca2,\n                amperiosenplaca2: amperiosenplaca2\n                }\n    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1070,"y":420,"wires":[["40daa278.7eaa8c"]]},{"id":"3b4d261d.daba4a","type":"function","z":"9bc9a9f6.d07ec8","name":"QLEDExtraccion","func":"var output = msg.payload.split(\" \");\nlet led = parseInt(output[0].slice(1, 2));\nlet ledvelocidad = parseInt(output[1]);\nlet ledefectos = parseInt(output[2]);\nlet ledbrillo = parseInt(output[3]);\nlet ledcosa = parseInt(output[4]);\nlet colorred = (output[5].slice(0,9));\nlet colorsolar = (output[5].slice(9,18));\nlet colorbateria = (output[5].slice(18,27));\nreturn [\n    {\n        payload: {\n                led: led,\n                ledvelocidad: ledvelocidad,\n                ledefectos: ledefectos,\n                ledbrillo: ledbrillo,\n                ledcosa: ledcosa,\n                colorred: colorred,\n                colorsolar: colorsolar,\n                colorbateria: colorbateria\n                }\n    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1060,"y":460,"wires":[["40daa278.7eaa8c"]]},{"id":"c2c747ec.cc0b58","type":"function","z":"9bc9a9f6.d07ec8","name":"QED Energia diaria producida","func":"var energiadiaria = parseInt(msg.payload.slice(1, 9));\nreturn [\n    {\n        payload: {\n                energiadiaria: energiadiaria\n                 }\n    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1110,"y":500,"wires":[["40daa278.7eaa8c"]]},{"id":"f5269e19.63df9","type":"function","z":"9bc9a9f6.d07ec8","name":"QLD Carga diaria entregada","func":"var cargadiariaentregada = parseInt(msg.payload.slice(1, 9));\nreturn [\n    {\n        payload: {\n                cargadiariaentregada: cargadiariaentregada\n                 }\n    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1100,"y":540,"wires":[["40daa278.7eaa8c"]]},{"id":"1dd162e5.f2db9d","type":"inject","z":"9bc9a9f6.d07ec8","name":"QPIRI Configuracion","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Configuracion","payload":"QPIRI","payloadType":"str","x":160,"y":280,"wires":[["61ce5339.3ff7ac"]]},{"id":"bb6879c0.e826a8","type":"inject","z":"9bc9a9f6.d07ec8","name":"QFLAG Miscelanea","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Miscelanea","payload":"QFLAG","payloadType":"str","x":160,"y":240,"wires":[["61ce5339.3ff7ac"]]},{"id":"60ba838c.a6dd2c","type":"inject","z":"9bc9a9f6.d07ec8","name":"QBEQI Ecualizacion Bateria","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Ecualizacion Bateria","payload":"QBEQI","payloadType":"str","x":190,"y":320,"wires":[["61ce5339.3ff7ac"]]},{"id":"a17ca4f5.bae9e8","type":"inject","z":"9bc9a9f6.d07ec8","name":"QPIWS Informacion Warnings","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Informacion Warnings","payload":"QPIWS","payloadType":"str","x":190,"y":360,"wires":[["61ce5339.3ff7ac"]]},{"id":"5acbc736.c03538","type":"inject","z":"9bc9a9f6.d07ec8","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":120,"wires":[["61ce5339.3ff7ac"]]},{"id":"a6e956bb.15a808","type":"inject","z":"9bc9a9f6.d07ec8","name":"QID Numero de Serie","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Numero de Serie","payload":"QID","payloadType":"str","x":160,"y":80,"wires":[["61ce5339.3ff7ac"]]},{"id":"d882e049.679d1","type":"inject","z":"9bc9a9f6.d07ec8","name":"QVFW Firmware CPU1","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Version CPU1","payload":"QVFW","payloadType":"str","x":170,"y":160,"wires":[["61ce5339.3ff7ac"]]},{"id":"251c2eb7.ca3252","type":"inject","z":"9bc9a9f6.d07ec8","name":"QVFW3 Firmware CPU3","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Firmware CPU3","payload":"QVFW3","payloadType":"str","x":170,"y":200,"wires":[["61ce5339.3ff7ac"]]},{"id":"61ce5339.3ff7ac","type":"link out","z":"9bc9a9f6.d07ec8","name":"EntradaalCRC","links":["2756c316.eadf3c"],"x":580,"y":360,"wires":[],"l":true},{"id":"497e6e1c.0ee55","type":"comment","z":"9bc9a9f6.d07ec8","name":"Comandos de monitorizacion cada 4 segundos","info":"Comandos de Monitorizacion","x":220,"y":40,"wires":[]},{"id":"39202c23.e6ea64","type":"inject","z":"9bc9a9f6.d07ec8","name":"QMOD Modo de Trabajo","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Modo de Trabajo","payload":"QMOD","payloadType":"str","x":170,"y":400,"wires":[["61ce5339.3ff7ac"]]},{"id":"c82b0d71.22c3c","type":"inject","z":"9bc9a9f6.d07ec8","name":"QPIGS2 Segundo Campo","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Campo2","payload":"QPIGS2","payloadType":"str","x":180,"y":440,"wires":[["61ce5339.3ff7ac"]]},{"id":"4813b372.e9c16c","type":"inject","z":"9bc9a9f6.d07ec8","name":"DAT Ajuste de Fecha","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 04 * * *","once":false,"onceDelay":0.1,"topic":"ajustedetiempo","payload":"DAT","payloadType":"str","x":160,"y":480,"wires":[["da8cd6b5.8dc498"]]},{"id":"da8cd6b5.8dc498","type":"simpletime","z":"9bc9a9f6.d07ec8","name":"","mydate":true,"myymd":true,"myyear":true,"mymonth":true,"mymonthn":true,"mydom":true,"mydoy":true,"myday":true,"myhourpm":true,"myhour":true,"mytime":true,"mytimes":true,"myminute":true,"myminutes":true,"mysecond":true,"mymillis":true,"myepoch":true,"myrawdate":true,"mypm":true,"x":130,"y":520,"wires":[["7ca8dbdc.f345e4"]]},{"id":"7ca8dbdc.f345e4","type":"function","z":"9bc9a9f6.d07ec8","name":"FormatoTiempo","func":"var comando = msg.payload;\nvar aa = msg.myyear.slice(2,4);\nvar mm = msg.mymonthn;\nvar dd = msg.mydom;\nvar hh = msg.myhour;\nvar ff = msg.myminute;\nvar ss = msg.mysecond;\nmsg.payload = comando + aa + mm + dd + hh + ff + ss;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":300,"y":520,"wires":[["61ce5339.3ff7ac"]]},{"id":"445143c5.a5e9fc","type":"inject","z":"9bc9a9f6.d07ec8","name":"QLED Barra LED","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Barra LED","payload":"QLED","payloadType":"str","x":150,"y":560,"wires":[["61ce5339.3ff7ac"]]},{"id":"aa4c4d04.97883","type":"inject","z":"9bc9a9f6.d07ec8","name":"Energiaproducidadiaria","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"energiaproducidadiaria","payload":"QED","payloadType":"str","x":170,"y":600,"wires":[["aafe8fbb.da251"]]},{"id":"aafe8fbb.da251","type":"simpletime","z":"9bc9a9f6.d07ec8","name":"","mydate":true,"myymd":true,"myyear":true,"mymonth":true,"mymonthn":true,"mydom":true,"mydoy":true,"myday":true,"myhourpm":true,"myhour":true,"mytime":true,"mytimes":true,"myminute":true,"myminutes":true,"mysecond":true,"mymillis":true,"myepoch":true,"myrawdate":true,"mypm":true,"x":370,"y":600,"wires":[["2f807913.a65ce6"]]},{"id":"d4afdba8.6582e8","type":"inject","z":"9bc9a9f6.d07ec8","name":"Cargadiariaentregada","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"cargadiariaentregada","payload":"QLD","payloadType":"str","x":170,"y":640,"wires":[["dc6f9b44.a170f8"]]},{"id":"dc6f9b44.a170f8","type":"simpletime","z":"9bc9a9f6.d07ec8","name":"","mydate":true,"myymd":true,"myyear":true,"mymonth":true,"mymonthn":true,"mydom":true,"mydoy":true,"myday":true,"myhourpm":true,"myhour":true,"mytime":true,"mytimes":true,"myminute":true,"myminutes":true,"mysecond":true,"mymillis":true,"myepoch":true,"myrawdate":true,"mypm":true,"x":370,"y":640,"wires":[["985cc328.92477"]]},{"id":"2f807913.a65ce6","type":"function","z":"9bc9a9f6.d07ec8","name":"FormatoTiempo","func":"var comando = msg.payload;\nvar aa = msg.myyear;\nvar mm = msg.mymonthn;\nvar dd = msg.mydom;\nmsg.payload = comando + aa + mm + dd;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":540,"y":600,"wires":[["61ce5339.3ff7ac"]]},{"id":"985cc328.92477","type":"function","z":"9bc9a9f6.d07ec8","name":"FormatoTiempo","func":"var comando = msg.payload;\nvar aa = msg.myyear;\nvar mm = msg.mymonthn;\nvar dd = msg.mydom;\nmsg.payload = comando + aa + mm + dd;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":540,"y":640,"wires":[["61ce5339.3ff7ac"]]},{"id":"6919b517.d1e43c","type":"comment","z":"9bc9a9f6.d07ec8","name":"Monitorizacion para Hibrido AXPERT MAX SINGLE  ","info":"","x":690,"y":40,"wires":[]},{"id":"4698e682.977198","type":"link out","z":"9bc9a9f6.d07ec8","name":"TodasLecturasAXPERTMAX","links":[],"x":1560,"y":340,"wires":[],"l":true},{"id":"bd8fa222.184f2","type":"comment","z":"9bc9a9f6.d07ec8","name":"Creando Objeto con todas las lecturas del Hibrido","info":"","x":1440,"y":240,"wires":[]},{"id":"d4e52660.0f5988","type":"function","z":"9bc9a9f6.d07ec8","name":"Id en topic num serie","func":"var topic = flow.get('numerodeserie');\nmsg.topic = topic;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1560,"y":280,"wires":[["4698e682.977198","645a2e8b.dcbcb"]]},{"id":"2756c316.eadf3c","type":"link in","z":"9bc9a9f6.d07ec8","name":"EntradaalCRC","links":["61ce5339.3ff7ac"],"x":830,"y":640,"wires":[["509893d1.98ab3c"]],"l":true},{"id":"4faa967b.783d88","type":"link in","z":"9bc9a9f6.d07ec8","name":"Respuesta Puerto serie","links":["22222d68.bf0a42"],"x":580,"y":280,"wires":[["ab516497.6a2e48"]],"l":true},{"id":"5b6d382c.101f88","type":"rbe","z":"9bc9a9f6.d07ec8","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1310,"y":340,"wires":[["40daa278.7eaa8c"]]},{"id":"8bc4fb15.08c6c8","type":"serial request","z":"9bc9a9f6.d07ec8","name":"","serial":"f455d2af.938f","x":1190,"y":640,"wires":[["22222d68.bf0a42"]]},{"id":"f455d2af.938f","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":"10000"}]
    Corresponde a este flujo en la plataforma:

    Archivo adjunto 23973

    Algunas consideraciones de este flujo:

    1.- Esta hecho para conversor USB-RS232 tipo PL2303.
    2.- La salida obtenida es un JSON con todos los parametros solicitados y topic el numero de serie del MAX.
    3.- La solicitud de datos es cada 4 segundos.
    4.- Hay un ajuste de fecha y hora una vez cada 24 horas siendo a las 4:00 cuando se hace.
    5.- Da datos cada minuto de energia producida por campos solares (los dos) diarios.
    6.- Da datos cada minuto de energia consumida en ACOUT diaria.
    7.- Es necesaria la instalacion del nodo simpletime. Se busca en la paleta de nodos instalables.

    Para proximas entregas queda pendiente un dashboard alimentado por ese JSON como podria ser este:

    Archivo adjunto 23974
    Hola Tejota, encontré un par de despistes en tu estupendo código ¡¡¡¡ no creo que sea intencionado, te reporto el asunto por si es necesario que realicen alguna corrección para la publicación del mismo.
    Las variables "fallo58voltajeinversorbajo" y "fallo58voltajeinversorbajo" que aparecen en la primera parte del código en la función "QPIWS Warnings Extrac" no aparecen en el payload, por lo que no son extraidos estos valores claro , no parece intencionado, tiene pinta de despiste ... ;-).
    Si es intencionado por favor indícame la razón ¡¡¡gracias, "genial trabajo" ¡¡

    - - - - - - - - - - - - - - - - - - -

    Una cosa que no cuenta nadie ... es que estos equipos funcionan bien con litio, pero si los pones en paralelo por lo visto el esclavo tiene problemas y la única forma de solucionarlo es perdiendo un 10% de límite de carga, esto sería algo así como cargar solo el 90% .. lo digo por si alguno estáis pensando en poner este equipo en paralelo con litio. (se entiende que con el último firmware)

  20. #220
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [NODERED] Monitorizacion AXPERT MAX

    Cita Iniciado por Au-PRX Ver mensaje
    Hola Tejota, encontré un par de despistes en tu estupendo código ¡¡¡¡ no creo que sea intencionado, te reporto el asunto por si es necesario que realicen alguna corrección para la publicación del mismo.
    Las variables "fallo58voltajeinversorbajo" y "fallo58voltajeinversorbajo" que aparecen en la primera parte del código en la función "QPIWS Warnings Extrac" no aparecen en el payload, por lo que no son extraidos estos valores claro , no parece intencionado, tiene pinta de despiste ... ;-).
    Si es intencionado por favor indícame la razón ¡¡¡gracias, "genial trabajo" ¡¡

    - - - - - - - - - - - - - - - - - - -

    Una cosa que no cuenta nadie ... es que estos equipos funcionan bien con litio, pero si los pones en paralelo por lo visto el esclavo tiene problemas y la única forma de solucionarlo es perdiendo un 10% de límite de carga, esto sería algo así como cargar solo el 90% .. lo digo por si alguno estáis pensando en poner este equipo en paralelo con litio. (se entiende que con el último firmware)
    Pues se me pasaria meter esa variable en la salida del extractor. Como hay unos pocos errores y warnings xD. Si que me gustaria hacer hincapie en que en este extractor meti un nodo rbe de excepcion a la salida.... lo que hace es bloquear los mensajes de warning y fault excepto cuando se producen. Es decir, de normal saldran todos a cero y el rbe los bloqueara, pero cuando se produce un warning o fault el payload de ese warning o fault cambia (se pone a 1) y el rbe lo deja pasar al json final.

    El flujo corregido quedaria asi:

    Código HTML:
    [{"id":"5f6fa704.5343c8","type":"tab","label":"Axpert MAX","disabled":false,"info":""},{"id":"90de9d2.931da6","type":"function","z":"5f6fa704.5343c8","name":"CRCTJ","func":"    //  Algoritmo para lanzar los comandos hacia Voltronics con CRC propietario\n    //  Algoritmo realizado por Tejota   \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":1020,"y":640,"wires":[["cb1067d0.c8ce68"]]},{"id":"2838ecfd.8cd944","type":"debug","z":"5f6fa704.5343c8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1590,"y":180,"wires":[]},{"id":"ed377b98.17a4c8","type":"link out","z":"5f6fa704.5343c8","name":"Respuesta Puerto serie","links":["fff6813.db9dc8"],"x":1410,"y":640,"wires":[],"l":true},{"id":"c72cb93.ee09c48","type":"comment","z":"5f6fa704.5343c8","name":"Comunicacion Puerto Serie","info":"","x":1190,"y":600,"wires":[]},{"id":"5a096377.3f3e4c","type":"switch","z":"5f6fa704.5343c8","name":"Repartidor Datos Lecturas","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"QID Numero de Serie","vt":"str"},{"t":"eq","v":"QPIGS Estado General","vt":"str"},{"t":"eq","v":"QVFW Version CPU1","vt":"str"},{"t":"eq","v":"QVFW3 Firmware CPU3","vt":"str"},{"t":"eq","v":"QFLAG Miscelanea","vt":"str"},{"t":"eq","v":"QPIRI Configuracion","vt":"str"},{"t":"eq","v":"QBEQI Ecualizacion Bateria","vt":"str"},{"t":"eq","v":"QPIWS Informacion Warnings","vt":"str"},{"t":"eq","v":"QMOD Modo de Trabajo","vt":"str"},{"t":"eq","v":"QPIGS2 Campo2","vt":"str"},{"t":"eq","v":"QLED Barra LED","vt":"str"},{"t":"cont","v":"energiaproducidadiaria","vt":"str"},{"t":"cont","v":"cargadiariaentregada","vt":"str"}],"checkall":"true","repair":false,"outputs":13,"x":810,"y":280,"wires":[["ff95ff18.ec85b"],["ff810834.c7d798"],["48c39a8a.d5d724"],["cb2f936d.00a01"],["4cc3d780.8ad4b8"],["e396b2a1.c4d23"],["b8cc5876.875448"],["a89ce5d5.85a738"],["e1c0a56c.8678a8"],["cdde61a7.1f9a8"],["f36403bf.023e9"],["1b560e4c.bd9052"],["9c4f60e9.5de2a"]]},{"id":"a92101ff.0be36","type":"comment","z":"5f6fa704.5343c8","name":"Repartiendo por topic","info":"","x":820,"y":160,"wires":[]},{"id":"4cc3d780.8ad4b8","type":"function","z":"5f6fa704.5343c8","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":1070,"y":220,"wires":[["ff6877d4.d59a38"]]},{"id":"ff810834.c7d798","type":"function","z":"5f6fa704.5343c8","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));\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    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1070,"y":100,"wires":[["ff6877d4.d59a38"]]},{"id":"e396b2a1.c4d23","type":"function","z":"5f6fa704.5343c8","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]);\nglobal.set('voltajeabsorcionconfmax0' , voltajeabsorcionconf);\nglobal.set('voltajeflotacionconfmax0' , voltajeflotacionconf);\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,"initialize":"","finalize":"","x":1060,"y":260,"wires":[["ff6877d4.d59a38"]]},{"id":"48c39a8a.d5d724","type":"function","z":"5f6fa704.5343c8","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":1080,"y":140,"wires":[["ff6877d4.d59a38"]]},{"id":"cb2f936d.00a01","type":"function","z":"5f6fa704.5343c8","name":"QVFW3 Firmware U3","func":"var output = msg.payload;\nlet Firmware3 = (output.slice(10, 15));\nreturn [\n    {\n        payload: {\n                Firmware3: Firmware3\n                 }\n    }\n]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1080,"y":180,"wires":[["ff6877d4.d59a38"]]},{"id":"b8cc5876.875448","type":"function","z":"5f6fa704.5343c8","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":1070,"y":300,"wires":[["ff6877d4.d59a38"]]},{"id":"ff95ff18.ec85b","type":"function","z":"5f6fa704.5343c8","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":1080,"y":60,"wires":[["ff6877d4.d59a38"]]},{"id":"bd9e19f5.d19bf8","type":"comment","z":"5f6fa704.5343c8","name":"Extractores","info":"","x":1070,"y":20,"wires":[]},{"id":"a89ce5d5.85a738","type":"function","z":"5f6fa704.5343c8","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            fallo58voltajeinversorbajo: fallo58voltajeinversorbajo,\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":1090,"y":340,"wires":[["2ca6f10d.d07c5e"]]},{"id":"ff6877d4.d59a38","type":"join","z":"5f6fa704.5343c8","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":1350,"y":280,"wires":[["a3adf839.650c38"]]},{"id":"e1c0a56c.8678a8","type":"function","z":"5f6fa704.5343c8","name":"QMOD Extractor","func":"var output = msg.payload;\nlet mdts = output.slice(1, 2);\nlet mododetrabajo;\nif (mdts === \"P\") {\n    mododetrabajo = 0;\n} else if (mdts === \"S\") {\n    mododetrabajo = 1;\n} else if (mdts === \"L\") {\n    mododetrabajo = 2;\n} else if (mdts === \"B\") {\n    mododetrabajo = 3;\n} else if (mdts === \"F\") {\n    mododetrabajo = 4;\n} else if (mdts === \"H\") {\n    mododetrabajo = 5;\n}    \nreturn [{\n    payload: {\n         mododetrabajo: mododetrabajo\n             }\n        }\n       ];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1060,"y":380,"wires":[["ff6877d4.d59a38"]]},{"id":"cdde61a7.1f9a8","type":"function","z":"5f6fa704.5343c8","name":"QPIGS2Extraccion","func":"var output = msg.payload.split(\" \");\nlet amperiosenplaca2 = parseInt(output[0].slice(1, 5));\nlet voltajeenplaca2 = parseInt(output[1]);\nlet potenciaenplaca2 = parseInt(output[2]);\nreturn [\n    {\n        payload: {\n                potenciaenplaca2: potenciaenplaca2,\n                voltajeenplaca2: voltajeenplaca2,\n                amperiosenplaca2: amperiosenplaca2\n                }\n    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1070,"y":420,"wires":[["ff6877d4.d59a38"]]},{"id":"f36403bf.023e9","type":"function","z":"5f6fa704.5343c8","name":"QLEDExtraccion","func":"var output = msg.payload.split(\" \");\nlet led = parseInt(output[0].slice(1, 2));\nlet ledvelocidad = parseInt(output[1]);\nlet ledefectos = parseInt(output[2]);\nlet ledbrillo = parseInt(output[3]);\nlet ledcosa = parseInt(output[4]);\nlet colorred = (output[5].slice(0,9));\nlet colorsolar = (output[5].slice(9,18));\nlet colorbateria = (output[5].slice(18,27));\nreturn [\n    {\n        payload: {\n                led: led,\n                ledvelocidad: ledvelocidad,\n                ledefectos: ledefectos,\n                ledbrillo: ledbrillo,\n                ledcosa: ledcosa,\n                colorred: colorred,\n                colorsolar: colorsolar,\n                colorbateria: colorbateria\n                }\n    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1060,"y":460,"wires":[["ff6877d4.d59a38"]]},{"id":"1b560e4c.bd9052","type":"function","z":"5f6fa704.5343c8","name":"QED Energia diaria producida","func":"var energiadiaria = parseInt(msg.payload.slice(1, 9));\nreturn [\n    {\n        payload: {\n                energiadiaria: energiadiaria\n                 }\n    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1110,"y":500,"wires":[["ff6877d4.d59a38"]]},{"id":"9c4f60e9.5de2a","type":"function","z":"5f6fa704.5343c8","name":"QLD Carga diaria entregada","func":"var cargadiariaentregada = parseInt(msg.payload.slice(1, 9));\nreturn [\n    {\n        payload: {\n                cargadiariaentregada: cargadiariaentregada\n                 }\n    }\n];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1100,"y":540,"wires":[["ff6877d4.d59a38"]]},{"id":"138a90d.41cf56f","type":"inject","z":"5f6fa704.5343c8","name":"QPIRI Configuracion","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Configuracion","payload":"QPIRI","payloadType":"str","x":160,"y":280,"wires":[["e84d8567.2375c8"]]},{"id":"c7d358b5.81ec78","type":"inject","z":"5f6fa704.5343c8","name":"QFLAG Miscelanea","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Miscelanea","payload":"QFLAG","payloadType":"str","x":160,"y":240,"wires":[["e84d8567.2375c8"]]},{"id":"628b9d49.5d93c4","type":"inject","z":"5f6fa704.5343c8","name":"QBEQI Ecualizacion Bateria","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Ecualizacion Bateria","payload":"QBEQI","payloadType":"str","x":190,"y":320,"wires":[["e84d8567.2375c8"]]},{"id":"d6bda6e7.f3a5a8","type":"inject","z":"5f6fa704.5343c8","name":"QPIWS Informacion Warnings","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Informacion Warnings","payload":"QPIWS","payloadType":"str","x":190,"y":360,"wires":[["e84d8567.2375c8"]]},{"id":"25944b24.1ec0f4","type":"inject","z":"5f6fa704.5343c8","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":120,"wires":[["e84d8567.2375c8"]]},{"id":"cf91d079.a0f67","type":"inject","z":"5f6fa704.5343c8","name":"QID Numero de Serie","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Numero de Serie","payload":"QID","payloadType":"str","x":160,"y":80,"wires":[["e84d8567.2375c8"]]},{"id":"fdb2a02f.70e9e","type":"inject","z":"5f6fa704.5343c8","name":"QVFW Firmware CPU1","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Version CPU1","payload":"QVFW","payloadType":"str","x":170,"y":160,"wires":[["e84d8567.2375c8"]]},{"id":"a67ae929.0c85b8","type":"inject","z":"5f6fa704.5343c8","name":"QVFW3 Firmware CPU3","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Firmware CPU3","payload":"QVFW3","payloadType":"str","x":170,"y":200,"wires":[["e84d8567.2375c8"]]},{"id":"e84d8567.2375c8","type":"link out","z":"5f6fa704.5343c8","name":"EntradaalCRC","links":["a5275ddf.550e2"],"x":580,"y":360,"wires":[],"l":true},{"id":"900581bc.d5902","type":"comment","z":"5f6fa704.5343c8","name":"Comandos de monitorizacion cada 4 segundos","info":"Comandos de Monitorizacion","x":220,"y":40,"wires":[]},{"id":"dfd4154f.588708","type":"inject","z":"5f6fa704.5343c8","name":"QMOD Modo de Trabajo","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Modo de Trabajo","payload":"QMOD","payloadType":"str","x":170,"y":400,"wires":[["e84d8567.2375c8"]]},{"id":"a0215de0.41bc8","type":"inject","z":"5f6fa704.5343c8","name":"QPIGS2 Segundo Campo","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Campo2","payload":"QPIGS2","payloadType":"str","x":180,"y":440,"wires":[["e84d8567.2375c8"]]},{"id":"fd9d8f04.d452f","type":"inject","z":"5f6fa704.5343c8","name":"DAT Ajuste de Fecha","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 04 * * *","once":false,"onceDelay":0.1,"topic":"ajustedetiempo","payload":"DAT","payloadType":"str","x":160,"y":480,"wires":[["af5a95e6.1d7918"]]},{"id":"af5a95e6.1d7918","type":"simpletime","z":"5f6fa704.5343c8","name":"","mydate":true,"myymd":true,"myyear":true,"mymonth":true,"mymonthn":true,"mydom":true,"mydoy":true,"myday":true,"myhourpm":true,"myhour":true,"mytime":true,"mytimes":true,"myminute":true,"myminutes":true,"mysecond":true,"mymillis":true,"myepoch":true,"myrawdate":true,"mypm":true,"x":130,"y":520,"wires":[["3ed79ad8.e27b46"]]},{"id":"3ed79ad8.e27b46","type":"function","z":"5f6fa704.5343c8","name":"FormatoTiempo","func":"var comando = msg.payload;\nvar aa = msg.myyear.slice(2,4);\nvar mm = msg.mymonthn;\nvar dd = msg.mydom;\nvar hh = msg.myhour;\nvar ff = msg.myminute;\nvar ss = msg.mysecond;\nmsg.payload = comando + aa + mm + dd + hh + ff + ss;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":300,"y":520,"wires":[["e84d8567.2375c8"]]},{"id":"e4a4940.7fd347","type":"inject","z":"5f6fa704.5343c8","name":"QLED Barra LED","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"4","crontab":"","once":false,"onceDelay":0.1,"topic":"Barra LED","payload":"QLED","payloadType":"str","x":150,"y":560,"wires":[["e84d8567.2375c8"]]},{"id":"f00b4f81.3cfd","type":"inject","z":"5f6fa704.5343c8","name":"Energiaproducidadiaria","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"energiaproducidadiaria","payload":"QED","payloadType":"str","x":170,"y":600,"wires":[["e4bfb236.18d77"]]},{"id":"e4bfb236.18d77","type":"simpletime","z":"5f6fa704.5343c8","name":"","mydate":true,"myymd":true,"myyear":true,"mymonth":true,"mymonthn":true,"mydom":true,"mydoy":true,"myday":true,"myhourpm":true,"myhour":true,"mytime":true,"mytimes":true,"myminute":true,"myminutes":true,"mysecond":true,"mymillis":true,"myepoch":true,"myrawdate":true,"mypm":true,"x":370,"y":600,"wires":[["c6f088c5.f41688"]]},{"id":"f2b0bbcc.15e778","type":"inject","z":"5f6fa704.5343c8","name":"Cargadiariaentregada","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"cargadiariaentregada","payload":"QLD","payloadType":"str","x":170,"y":640,"wires":[["569de281.cf229c"]]},{"id":"569de281.cf229c","type":"simpletime","z":"5f6fa704.5343c8","name":"","mydate":true,"myymd":true,"myyear":true,"mymonth":true,"mymonthn":true,"mydom":true,"mydoy":true,"myday":true,"myhourpm":true,"myhour":true,"mytime":true,"mytimes":true,"myminute":true,"myminutes":true,"mysecond":true,"mymillis":true,"myepoch":true,"myrawdate":true,"mypm":true,"x":370,"y":640,"wires":[["afb34080.0d113"]]},{"id":"c6f088c5.f41688","type":"function","z":"5f6fa704.5343c8","name":"FormatoTiempo","func":"var comando = msg.payload;\nvar aa = msg.myyear;\nvar mm = msg.mymonthn;\nvar dd = msg.mydom;\nmsg.payload = comando + aa + mm + dd;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":540,"y":600,"wires":[["e84d8567.2375c8"]]},{"id":"afb34080.0d113","type":"function","z":"5f6fa704.5343c8","name":"FormatoTiempo","func":"var comando = msg.payload;\nvar aa = msg.myyear;\nvar mm = msg.mymonthn;\nvar dd = msg.mydom;\nmsg.payload = comando + aa + mm + dd;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":540,"y":640,"wires":[["e84d8567.2375c8"]]},{"id":"afce398d.6bbd38","type":"comment","z":"5f6fa704.5343c8","name":"Monitorizacion para Hibrido AXPERT MAX SINGLE  ","info":"","x":690,"y":40,"wires":[]},{"id":"56de60ad.ef543","type":"link out","z":"5f6fa704.5343c8","name":"TodasLecturasAXPERTMAX","links":[],"x":1560,"y":340,"wires":[],"l":true},{"id":"e9f79a21.e58798","type":"comment","z":"5f6fa704.5343c8","name":"Creando Objeto con todas las lecturas del Hibrido","info":"","x":1440,"y":240,"wires":[]},{"id":"a3adf839.650c38","type":"function","z":"5f6fa704.5343c8","name":"Id en topic num serie","func":"var topic = flow.get('numerodeserie');\nmsg.topic = topic;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1560,"y":280,"wires":[["56de60ad.ef543","2838ecfd.8cd944"]]},{"id":"a5275ddf.550e2","type":"link in","z":"5f6fa704.5343c8","name":"EntradaalCRC","links":["e84d8567.2375c8"],"x":830,"y":640,"wires":[["90de9d2.931da6"]],"l":true},{"id":"fff6813.db9dc8","type":"link in","z":"5f6fa704.5343c8","name":"Respuesta Puerto serie","links":["ed377b98.17a4c8"],"x":580,"y":280,"wires":[["5a096377.3f3e4c"]],"l":true},{"id":"2ca6f10d.d07c5e","type":"rbe","z":"5f6fa704.5343c8","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1310,"y":340,"wires":[["ff6877d4.d59a38"]]},{"id":"cb1067d0.c8ce68","type":"serial request","z":"5f6fa704.5343c8","name":"","serial":"f455d2af.938f","x":1190,"y":640,"wires":[["ed377b98.17a4c8"]]},{"id":"f455d2af.938f","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":"10000"}]

    Respecto a lo del litio y los paralelos. Yo es que si tuviera una bateria de litio no la conectaria al hibrido. Lo gestionaria todo a traves de la Rpi y del nodered. O sea que la bateria de litio hable con la Rpi, le de los datos y la Rpi de ordenes al hibrido o al paralelo segun los datos que venga de la bateria. Asi saltas todas las inutilidades que hacen los chinos en el firmware.
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  21. #221
    Au-PRX está desconectado Forero
    Fecha de ingreso
    sep 2020
    Ubicación
    Cataluña
    Mensajes
    316

    Predeterminado Re: [NODERED] Monitorizacion AXPERT MAX

    sobre las correciones, solo es por si alguien mas esta usando el codigo, para mi es estupendo poder "trastear", y si puedo aportear mi granito de arena mal que sea con pequeñas correcciones...

    Cita Iniciado por Tejota Ver mensaje
    Respecto a lo del litio y los paralelos. Yo es que si tuviera una bateria de litio no la conectaria al hibrido. Lo gestionaria todo a traves de la Rpi y del nodered. O sea que la bateria de litio hable con la Rpi, le de los datos y la Rpi de ordenes al hibrido o al paralelo segun los datos que venga de la bateria. Asi saltas todas las inutilidades que hacen los chinos en el firmware.
    Eso me parece una idea genial, pero tiene un trabajo importante, sobre todo partiendo de 0 en mi caso con estos sistemas, la verdad es que creo que seria con diferencia la mejor solución y la que permitiría un control más preciso, lamentablemente hasta el momento, solo leo datos del MAX con tu código, y lo mismo con la batería, estoy investigando como leer los datos del bms directamente, pero entre una cosa y otra aún no me pude poner.
    En cualquier caso, si logro algún avance ya te contaré, que seguro que me vendrá bien hacerte más de una consulta ¡¡¡

    PD eso permitiría otra cosa interesante, como puede ser la coexistencia de diferentes grupos de baterías.

  22. #222
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [NODERED] Monitorizacion AXPERT MAX

    Cita Iniciado por Au-PRX Ver mensaje
    sobre las correciones, solo es por si alguien mas esta usando el codigo, para mi es estupendo poder "trastear", y si puedo aportear mi granito de arena mal que sea con pequeñas correcciones...



    Eso me parece una idea genial, pero tiene un trabajo importante, sobre todo partiendo de 0 en mi caso con estos sistemas, la verdad es que creo que seria con diferencia la mejor solución y la que permitiría un control más preciso, lamentablemente hasta el momento, solo leo datos del MAX con tu código, y lo mismo con la batería, estoy investigando como leer los datos del bms directamente, pero entre una cosa y otra aún no me pude poner.
    En cualquier caso, si logro algún avance ya te contaré, que seguro que me vendrá bien hacerte más de una consulta ¡¡¡

    PD eso permitiría otra cosa interesante, como puede ser la coexistencia de diferentes grupos de baterías.
    A ver, a mi se me pueden pasar cosas y de hecho estoy seguro que en algun nodo de funcion me habre confundido pero si no me salta alguna cosa en el depurador no me enterare. Despues esta el tema de que para hacer una cosa en nodered se puede hacer esa cosa de mil formas diferentes. Ahi ya entran las manias personales y los vicios de programacion de cada uno.

    Respecto a las baterias.... eso da para un hilo aparte del tipo: gestion de baterias con nodered para Voltronic.... Al final tendre que pillar una bateria de esas a ver que resultado da.
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  23. #223
    Au-PRX está desconectado Forero
    Fecha de ingreso
    sep 2020
    Ubicación
    Cataluña
    Mensajes
    316

    Predeterminado Re: [NODERED] Monitorizacion AXPERT MAX

    Cita Iniciado por Tejota Ver mensaje
    A ver, a mi se me pueden pasar cosas y de hecho estoy seguro que en algun nodo de funcion me habre confundido pero si no me salta alguna cosa en el depurador no me enterare. Despues esta el tema de que para hacer una cosa en nodered se puede hacer esa cosa de mil formas diferentes. Ahi ya entran las manias personales y los vicios de programacion de cada uno.
    Ya sabes como es programar, es facil dejarse algo, y si no chirria mucho, puede estar asi para siempre ... en general tu codigo funciona muy bien, lastima que no añadieses tambien comandos para poder gestionar el inversor en remoto, eso seria muy interesante.

    Cita Iniciado por Tejota Ver mensaje
    Respecto a las baterias.... eso da para un hilo aparte del tipo: gestion de baterias con nodered para Voltronic.... Al final tendre que pillar una bateria de esas a ver que resultado da.
    Estoy seguro de que antes o después, experimentaras con estas baterías, me refiero al litio en la versión que sea, para mí la más interesante desde un punto de vista técnico y de seguridad es la ferro fosfato, pero hay gente que incluso usa baterías de Litio Níquel Cobalto, recicladas de algunos vehículos eléctricos, cosa que me parece temeraria ¡¡ , prefiero gastar algo más de dinero y dormir tranquilo. El tema de los bms es también muy interesante, con un bms decente se puede obtener información muy detallada del conjunto de celdas y trabajando bien el equilibrado y las cargas y descargas, en el caso de las ferro fosfato, se pueden obtener rendimientos muy buenos y larga duración, ocupando un espacio mínimo comparándolas con plomo ácido. Creo que el futuro va por ese camino sin duda.

    En mi batería la conexión es rs485 entre baterías CAM para el inversor, y rs232 para la monitorización con pc.
    Por el momento y dado que carezco de información del protocolo, lo único que puedo hacer el leer los ficheros log generados por la aplicación para pc.

    Saludos ¡¡¡

  24. #224
    Avatar de Tejota
    Tejota está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Inmortal Ciudad de Zaragoza
    Mensajes
    3.411

    Predeterminado Re: [NODERED] Monitorizacion AXPERT MAX

    Cita Iniciado por Au-PRX Ver mensaje
    Ya sabes como es programar, es facil dejarse algo, y si no chirria mucho, puede estar asi para siempre ... en general tu codigo funciona muy bien, lastima que no añadieses tambien comandos para poder gestionar el inversor en remoto, eso seria muy interesante.
    Que no los añadiese no significa que no los tenga hechos.



    Lo que pasa que no los tengo presentables esos menus. Tengo que perder un poco mas de tiempo para que queden bonitos. Pero vamos es un simple dashboard con confirmacion para lanzar el comando mas un popup en la derecha arriba y un log de eventos.
    Los hice en un rato para lanzar algun comando pero los uso muy poco.


    Cita Iniciado por Au-PRX Ver mensaje


    En mi batería la conexión es rs485 entre baterías CAM para el inversor, y rs232 para la monitorización con pc.
    Por el momento y dado que carezco de información del protocolo, lo único que puedo hacer el leer los ficheros log generados por la aplicación para pc.
    Pues saca el protocolo del rs232.... tan sencillo con sniffear esa conexion a ver que circula por ahi. El puerto serie no esta encriptado... ira todo en texto plano o en su defecto en buffer.
    Da para otro hilo esto de las baterias de litio. No digo que no pille alguna pylon o weco para alguna maquina aislada que tengo por aqui
    NODERED y el Autoconsumo Fotovoltaico
    NO RESPONDO PREGUNTAS TECNICAS POR PRIVADO. SOLO EN FORO PUBLICO, asi sirve para todos.

  25. #225
    Au-PRX está desconectado Forero
    Fecha de ingreso
    sep 2020
    Ubicación
    Cataluña
    Mensajes
    316

    Predeterminado Re: [NODERED] Monitorizacion AXPERT MAX

    Cita Iniciado por Tejota Ver mensaje
    Que no los añadiese no significa que no los tenga hechos.



    Lo que pasa que no los tengo presentables esos menus. Tengo que perder un poco mas de tiempo para que queden bonitos. Pero vamos es un simple dashboard con confirmacion para lanzar el comando mas un popup en la derecha arriba y un log de eventos.
    Los hice en un rato para lanzar algun comando pero los uso muy poco.
    ¡¡Coño ¡¡ ups con perdón ... pero Tejota que más quieres ¡¡¡ yo veo muy correctos esos desplegables ... al que no le gusten, que le dedique un poco de tiempo y se los ponga bonitos ... Yo los encuentro completamente funcionales y correctos ... Te pediría que los publicases, pero no quiero contravenirte sino estas decidió a hacerlo.

    Cita Iniciado por Tejota Ver mensaje
    Pues saca el protocolo del rs232.... tan sencillo con sniffear esa conexion a ver que circula por ahi. El puerto serie no esta encriptado... ira todo en texto plano o en su defecto en buffer.
    Da para otro hilo esto de las baterias de litio. No digo que no pille alguna pylon o weco para alguna maquina aislada que tengo por aqui
    Si ¡¡ tenía una máquina dedicada para cosas de estas trastear puertos conexiones ip y cosas de comunicación , pero si te digo que no sé donde la tengo... parece mentira, pero la tengo despistada, es un portátil antiguo, pero aún tira para cosas de estas, pero mira , buscando buscando, encontré otra máquina que ya ni recordaba un Aton con dos puertos serie .. tamaño pequeño y bajo consumo.... si no aparece buscaré con que programa esnifaba el tráfico y probaré a ver qué veo,

Página 9 de 33 PrimerPrimer ... 891019 ... ÚltimoÚltimo



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47