Ersetz einfach mal den Flow Inhalt (VE.Direct)mit diesem:
[{"id":"1bb9fe8186ec0a2c","type":"function","z":"eaf4189c977e6ca6","name":"Phonenix Inverter","func":"msg.payload = msg.payload.toString();\nmsg.payload = msg.payload.split(\"\\n\");\n\nmsg.payload = {\n \"PID\": msg.payload[1].substring(4),\n \"FW\": msg.payload[2].substring(3),\n \"SER\": msg.payload[3].substring(5),\n \"MODE\": msg.payload[4].substring(5),\n \"CS\": msg.payload[5].substring(3),\n \"AC_V\": parseFloat(msg.payload[6].substring(9)/100),\n \"AC_I\": parseFloat(msg.payload[7].substring(9)/10),\n \"Vin\": parseFloat(msg.payload[8].substring(2)/1000),\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":380,"wires":[["319867ea1e43bc2e","90390cedcd5db098","49acbb70134582c3"]]},{"id":"bc7dc672c894a3b6","type":"link in","z":"eaf4189c977e6ca6","name":"Serial Connect Ve.direct","links":["788c0148719bd99c","1abad3b522bc0cdb","9a58f3a0ce2f303c","6a7fd365793465ff","1f60a35e099f02b6"],"x":95,"y":440,"wires":[["3d7b575b4d1a5c0f","79d1975d40e1d596"]]},{"id":"3d7b575b4d1a5c0f","type":"function","z":"eaf4189c977e6ca6","name":"search PID","func":"\nmsg.pid = msg.payload.toString();\nmsg.pid = msg.pid.split(\"\\n\");\n\n\n\n\nmsg.pid = msg.pid[1].substring(4,10);\n\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":200,"y":440,"wires":[["c47982e62a0b4a9d","f10b77713d7d166f","07dd43d13ddc443c","8ae17b5c444c27c9"]]},{"id":"380bafc7e0eef919","type":"ui_text","z":"eaf4189c977e6ca6","group":"4b3907bf.1686b8","order":0,"width":0,"height":0,"name":"","label":"AC Voltage","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1110,"y":240,"wires":[]},{"id":"319867ea1e43bc2e","type":"function","z":"eaf4189c977e6ca6","name":"AC_V","func":"msg.payload=msg.payload.AC_V;\nglobal.set(\"VE_AC_V\",msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":240,"wires":[["380bafc7e0eef919"]]},{"id":"f4e3226bf85660ee","type":"ui_text","z":"eaf4189c977e6ca6","group":"4b3907bf.1686b8","order":1,"width":0,"height":0,"name":"","label":"AC Current","format":"{{msg.payload}}","layout":"row-spread","className":"","x":1110,"y":280,"wires":[]},{"id":"90390cedcd5db098","type":"function","z":"eaf4189c977e6ca6","name":"AC_I","func":"msg.payload=msg.payload.AC_I;\nglobal.set(\"VE_AC_i\",msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":280,"wires":[["f4e3226bf85660ee"]]},{"id":"57734a9d91a97bf1","type":"ui_text","z":"eaf4189c977e6ca6","group":"4b3907bf.1686b8","order":2,"width":0,"height":0,"name":"","label":"Vin","format":"{{msg.payload}}","layout":"row-spread","x":1090,"y":320,"wires":[]},{"id":"49acbb70134582c3","type":"function","z":"eaf4189c977e6ca6","name":"Vin","func":"msg.payload=msg.payload.Vin;\nglobal.set(\"VE_Vin\",msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":320,"wires":[["57734a9d91a97bf1"]]},{"id":"78da6cc6771ab890","type":"function","z":"eaf4189c977e6ca6","name":"Smart Solar MPPT","func":"msg.payload = msg.payload.toString();\nlet lines = msg.payload.split(\"\\n\");\n\n// Prüfen, ob mindestens 18 Zeilen vorhanden sind\nif (lines.length < 18) {\n return null; // Keine Ausgabe bei unvollständigen Daten\n}\n\nmsg.payload = {\n \"PID\": lines[1]?.substring(4) || \"\",\n \"FW\": lines[2]?.substring(3) || \"\",\n \"SER\": lines[3]?.substring(5) || \"\",\n \"Vbatt\": parseFloat(lines[4]?.substring(2)) / 1000 || 0,\n \"Current\": parseFloat(lines[5]?.substring(2)) / 1000 || 0,\n \"PanelVolt\": parseFloat(lines[6]?.substring(4)) / 1000 || 0,\n \"PanelPower\": parseFloat(lines[7]?.substring(4)) || 0,\n \"Error\": lines[10]?.substring(4) || \"\",\n \"Iload\": parseFloat(lines[12]?.substring(3)) || 0,\n \"kwhcounter\": parseFloat(lines[13]?.substring(4)) || 0,\n \"kwhcountertoday\": parseFloat(lines[14]?.substring(4)) || 0,\n \"maxPowerToday\": parseFloat(lines[15]?.substring(4)) || 0,\n \"kwhcounterYesterday\": parseFloat(lines[16]?.substring(4)) || 0,\n \"maxPowerYesterday\": parseFloat(lines[17]?.substring(4)) || 0\n};\n\nreturn msg;\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":440,"wires":[["51857b4c4fb4a602","227ecd02df78445d","6d60fd34fbdae283","84ba464472fc687f","0c6f96888c02efa6","45f1f8e8636dbe61","f8be803186426e8b"]]},{"id":"050dd439e187701d","type":"ui_text","z":"eaf4189c977e6ca6","group":"7bd243ed.9f706c","order":2,"width":0,"height":0,"name":"","label":"Panel Volt","format":"{{msg.payload}} V","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1100,"y":420,"wires":[]},{"id":"51857b4c4fb4a602","type":"function","z":"eaf4189c977e6ca6","name":"PanelVolt","func":"msg.payload=msg.payload.PanelVolt;\nglobal.set(\"VE_PanelVolt\",msg.payload);\nglobal.set(\"mppt_pv_volts\", msg.payload)\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":880,"y":420,"wires":[["050dd439e187701d"]]},{"id":"6cf9c75ab81e187e","type":"ui_text","z":"eaf4189c977e6ca6","group":"7bd243ed.9f706c","order":1,"width":0,"height":0,"name":"","label":"Panel Power","format":"{{msg.payload}} W","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1110,"y":460,"wires":[]},{"id":"227ecd02df78445d","type":"function","z":"eaf4189c977e6ca6","name":"PanelPower","func":"msg.payload=msg.payload.PanelPower;\nglobal.set(\"VE_PanelPower\",msg.payload);\nglobal.set(\"mppt_pv_watts\", msg.payload)\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":890,"y":460,"wires":[["6cf9c75ab81e187e"]]},{"id":"397d4cd0ecf86774","type":"ui_text","z":"eaf4189c977e6ca6","group":"7bd243ed.9f706c","order":3,"width":0,"height":0,"name":"","label":"Battery","format":"{{msg.payload}} V","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1100,"y":500,"wires":[]},{"id":"6d60fd34fbdae283","type":"function","z":"eaf4189c977e6ca6","name":"BatteryVolt","func":"msg.payload=msg.payload.Vbatt;\nglobal.set(\"VE_BatteryVolt\",msg.payload);\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":890,"y":500,"wires":[["397d4cd0ecf86774"]]},{"id":"a64add83c45e6b15","type":"function","z":"eaf4189c977e6ca6","name":"","func":"msg.payload={\"group\":{\"hide\":[\"Info_Victron_Inverter\",\"Info_Victron_SmartSolar\",\"Info_Victron_Shunt\"]}};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":200,"wires":[["8daecfd463e67b59"]]},{"id":"80aaed50e8eadd35","type":"inject","z":"eaf4189c977e6ca6","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":200,"wires":[["a64add83c45e6b15"]]},{"id":"8daecfd463e67b59","type":"ui_ui_control","z":"eaf4189c977e6ca6","name":"","events":"all","x":420,"y":200,"wires":[[]]},{"id":"6f74422bb392ff95","type":"function","z":"eaf4189c977e6ca6","name":"Shunt","func":"msg.payload = msg.payload.toString();\nmsg.payload = msg.payload.split(\"\\n\");\n\nmsg.payload = {\n \"PID\": msg.payload[1].substring(4),\n \"Vbatt\":parseFloat(msg.payload[2].substring(2)/1000),\n \"Vaux\": parseFloat(msg.payload[3].substring(2)),\n \"Current\": parseFloat(msg.payload[4].substring(2)/1000),\n \"Power\": parseFloat(msg.payload[5].substring(2)),\n \"CE\": parseFloat(msg.payload[6].substring(3)/1000),\n \"SOC\": parseFloat(msg.payload[7].substring(4)/10),\n \"TTG\": parseFloat(msg.payload[8].substring(4)),\n}\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":500,"wires":[["f60e55abe4de66f4","43dcd7129658db7a","fc8edb505366dc7b","3d1287408371e8e8","971c858237e871a7","764777437fa6fbc6","fe3165c954f7667f","32d317419d16d410"]]},{"id":"5db4bcd4baac4a66","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":1,"width":0,"height":0,"name":"","label":"MainBattery","format":"{{msg.payload}} V","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1110,"y":700,"wires":[]},{"id":"f60e55abe4de66f4","type":"function","z":"eaf4189c977e6ca6","name":"MainBattery","func":"msg.payload=msg.payload.Vbatt.toFixed(2);\nglobal.set(\"VE_Mainbattery\",msg.payload);\nglobal.set(\"BATTvolt\",msg.payload);\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":890,"y":700,"wires":[["5db4bcd4baac4a66"]]},{"id":"43dcd7129658db7a","type":"function","z":"eaf4189c977e6ca6","name":"Vaux","func":"msg.payload=msg.payload.Vaux;\nglobal.set(\"VE_Aux\",msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":740,"wires":[["5d380195bf2be0a6"]]},{"id":"fc8edb505366dc7b","type":"function","z":"eaf4189c977e6ca6","name":"Current","func":"msg.payload=msg.payload.Current;\nglobal.set(\"VE_Current\",msg.payload);\nglobal.set(\"BATTamps\",msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":880,"y":780,"wires":[["88660a0cb34ef5dd"]]},{"id":"971c858237e871a7","type":"function","z":"eaf4189c977e6ca6","name":"Consumed AMPHOurs","func":"msg.payload=msg.payload.CE;\nglobal.set(\"VE_consumedAH\",msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":920,"y":860,"wires":[["5d6998eea63878c0"]]},{"id":"5d380195bf2be0a6","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":6,"width":0,"height":0,"name":"","label":"AuxChannel","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1110,"y":740,"wires":[]},{"id":"88660a0cb34ef5dd","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":2,"width":0,"height":0,"name":"","label":"Current","format":"{{msg.payload}} A","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1100,"y":780,"wires":[]},{"id":"5d6998eea63878c0","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":5,"width":0,"height":0,"name":"","label":"Consumed Ah","format":"{{msg.payload}} Ah","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1120,"y":860,"wires":[]},{"id":"a1cae1f748ab114b","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":7,"width":0,"height":0,"name":"","label":"Max Volt","format":"{{msg.payload.H8}} V","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":860,"y":1060,"wires":[]},{"id":"8826bcdf4d1d0372","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":8,"width":0,"height":0,"name":"","label":"Min Volt","format":"{{msg.payload.H7}} V","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":860,"y":1100,"wires":[]},{"id":"84ba464472fc687f","type":"function","z":"eaf4189c977e6ca6","name":"solarCurrent","func":"msg.payload=msg.payload.Current;\nglobal.set(\"VE_solarCurrent\",msg.payload);\nglobal.set(\"mppt_pv_amps\", msg.payload)\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":890,"y":540,"wires":[["5c811a9665a03336"]]},{"id":"5c811a9665a03336","type":"ui_text","z":"eaf4189c977e6ca6","group":"7bd243ed.9f706c","order":4,"width":0,"height":0,"name":"","label":"Charge Current","format":"{{msg.payload}} A","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1120,"y":540,"wires":[]},{"id":"79d1975d40e1d596","type":"function","z":"eaf4189c977e6ca6","name":"Check H Values","func":"msg.h = msg.payload.toString();\nmsg.h = msg.h.split(\"\\n\");\nmsg.h = msg.h[1].substring(0,2);\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":1020,"wires":[["944938075254d4bf"]]},{"id":"944938075254d4bf","type":"switch","z":"eaf4189c977e6ca6","name":"","property":"h","propertyType":"msg","rules":[{"t":"eq","v":"H1","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":490,"y":1020,"wires":[["a99c671e072f6c6d"]]},{"id":"a99c671e072f6c6d","type":"function","z":"eaf4189c977e6ca6","name":"Shunt H values","func":"msg.payload = msg.payload.toString();\nmsg.payload = msg.payload.split(\"\\n\");\n\nmsg.payload = {\n \"H1\": msg.payload[1] != undefined ? parseFloat(msg.payload[1].substring(3)/1000) : 0,\n \"H2\": msg.payload[2] != undefined ? parseFloat(msg.payload[2].substring(3) / 1000) : 0,\n \"H3\": msg.payload[3] != undefined ? msg.payload[3].substring(3).trim() : \"0\",\n \"H4\": msg.payload[4] != undefined ? parseFloat(msg.payload[4].substring(3) / 1000) : 0,\n \"H5\": msg.payload[5] != undefined ? parseFloat(msg.payload[5].substring(3)) : 0,\n \"H6\": msg.payload[6] != undefined ? msg.payload[6].substring(3).trim() : \"0\",\n \"H7\": msg.payload[7] != undefined ? parseFloat(msg.payload[7].substring(3) / 1000) : 0,\n \"H8\": msg.payload[8] != undefined ? parseFloat(msg.payload[8].substring(3) / 1000) : 0,\n \"H9\": msg.payload[9] != undefined ? parseFloat(msg.payload[9].substring(3) / 1000) : 0\n}\n\nglobal.set(\"VE_minVolt\",msg.payload.H7);\nglobal.set(\"VE_maxVolt\",msg.payload.H8);\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":680,"y":1080,"wires":[["a1cae1f748ab114b","8826bcdf4d1d0372"]]},{"id":"3d1287408371e8e8","type":"function","z":"eaf4189c977e6ca6","name":"Power","func":"msg.payload=msg.payload.Power;\nglobal.set(\"VE_Power\",msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":820,"wires":[["65a8901e1547e5a3"]]},{"id":"65a8901e1547e5a3","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":3,"width":0,"height":0,"name":"","label":"Power","format":"{{msg.payload}} W","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1090,"y":820,"wires":[]},{"id":"355e0179870bad2c","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":4,"width":0,"height":0,"name":"","label":"SOC","format":"{{msg.payload}} %","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1090,"y":900,"wires":[]},{"id":"440d5687fa3edb69","type":"comment","z":"eaf4189c977e6ca6","name":"globals","info":"/////VE.direct\n//Inverter\nglobal.set(\"VE_AC_V\",0);\nglobal.set(\"VE_AC_i\",0);\nglobal.set(\"VE_Vin\",0);\n//SmartSolar\nglobal.set(\"VE_PanelVolt\",0);\nglobal.set(\"VE_PanelPower\",0);\nglobal.set(\"VE_BatteryVolt\",0);\nglobal.set(\"VE_solarCurrent\",0);\n//Shunt\nglobal.set(\"VE_Mainbattery\",0);\nglobal.set(\"VE_StarterBattery\",0);\nglobal.set(\"VE_Current\",0);\nglobal.set(\"VE_Power\",0);\nglobal.set(\"VE_consumedAH\",0);\nglobal.set(\"VE_SOC\",0);\nglobal.set(\"VE_maxVolt\",0);\nglobal.set(\"VE_minVolt\",0);\nglobal.set(\"VE_timetogo\",0);\n","x":1090,"y":200,"wires":[]},{"id":"764777437fa6fbc6","type":"function","z":"eaf4189c977e6ca6","name":"SOC","func":"msg.payload=msg.payload.SOC;\nglobal.set(\"VE_SOC\",msg.payload);\nglobal.set(\"BATTsoc\",msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":900,"wires":[["355e0179870bad2c"]]},{"id":"71b0048d0efa12dd","type":"inject","z":"eaf4189c977e6ca6","name":"every 2min","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"120","crontab":"","once":true,"onceDelay":"50","topic":"","payload":"","payloadType":"date","x":670,"y":140,"wires":[["87f617d376aff797"]]},{"id":"87f617d376aff797","type":"function","z":"eaf4189c977e6ca6","name":"reset globals","func":"/////VE.direct\n//Inverter\nglobal.set(\"VE_AC_V\",\"\");\nglobal.set(\"VE_AC_i\",\"\");\nglobal.set(\"VE_Vin\",\"\");\n//SmartSolar\nglobal.set(\"VE_PanelVolt\",\"\");\nglobal.set(\"VE_PanelPower\",\"\");\nglobal.set(\"VE_BatteryVolt\",\"\");\nglobal.set(\"VE_solarCurrent\",\"\");\n//Shunt\nglobal.set(\"VE_Mainbattery\",\"\");\nglobal.set(\"VE_StarterBattery\",\"\");\nglobal.set(\"VE_Current\",\"\");\nglobal.set(\"VE_Power\",\"\");\nglobal.set(\"VE_consumedAH\",\"\");\nglobal.set(\"VE_SOC\",\"\");\nglobal.set(\"VE_maxVolt\",\"\");\nglobal.set(\"VE_minVolt\",\"\");\nglobal.set(\"VE_timetogo\",\"\");\n\nmsg.payload = \"\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":890,"y":140,"wires":[["380bafc7e0eef919","f4e3226bf85660ee","57734a9d91a97bf1","050dd439e187701d","6cf9c75ab81e187e","397d4cd0ecf86774","5c811a9665a03336","5db4bcd4baac4a66","5d380195bf2be0a6","88660a0cb34ef5dd","65a8901e1547e5a3","5d6998eea63878c0","355e0179870bad2c"]]},{"id":"c47982e62a0b4a9d","type":"function","z":"eaf4189c977e6ca6","name":"usbPortcheck","func":"if(msg.pid != null) \nglobal.set(\"usbPortcheck_victron\", true);","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":340,"wires":[[]]},{"id":"f10b77713d7d166f","type":"function","z":"eaf4189c977e6ca6","name":"Check Phoenix Inverter","func":"function handlePhoenixInverter(msg) {\n const supportedDevices = [\n { pid: \"0xA201\", name: \"Phoenix Inverter 12V 250VA 230V\" },\n { pid: \"0xA202\", name: \"Phoenix Inverter 24V 250VA 230V\" },\n { pid: \"0xA204\", name: \"Phoenix Inverter 48V 250VA 230V\" },\n { pid: \"0xA211\", name: \"Phoenix Inverter 12V 375VA 230V\" },\n { pid: \"0xA212\", name: \"Phoenix Inverter 24V 375VA 230V\" },\n { pid: \"0xA214\", name: \"Phoenix Inverter 48V 375VA 230V\" },\n { pid: \"0xA221\", name: \"Phoenix Inverter 12V 500VA 230V\" },\n { pid: \"0xA222\", name: \"Phoenix Inverter 24V 500VA 230V\" },\n { pid: \"0xA224\", name: \"Phoenix Inverter 48V 500VA 230V\" },\n { pid: \"0xA231\", name: \"Phoenix Inverter 12V 250VA 230V\" },\n { pid: \"0xA232\", name: \"Phoenix Inverter 24V 250VA 230V\" },\n { pid: \"0xA234\", name: \"Phoenix Inverter 48V 250VA 230V\" },\n { pid: \"0xA239\", name: \"Phoenix Inverter 12V 250VA 120V\" },\n { pid: \"0xA23A\", name: \"Phoenix Inverter 24V 250VA 120V\" },\n { pid: \"0xA23C\", name: \"Phoenix Inverter 48V 250VA 120V\" },\n { pid: \"0xA241\", name: \"Phoenix Inverter 12V 375VA 230V\" },\n { pid: \"0xA242\", name: \"Phoenix Inverter 24V 375VA 230V\" },\n { pid: \"0xA244\", name: \"Phoenix Inverter 48V 375VA 230V\" },\n { pid: \"0xA249\", name: \"Phoenix Inverter 12V 375VA 120V\" },\n { pid: \"0xA24A\", name: \"Phoenix Inverter 24V 375VA 120V\" },\n { pid: \"0xA24C\", name: \"Phoenix Inverter 48V 375VA 120V\" },\n { pid: \"0xA251\", name: \"Phoenix Inverter 12V 500VA 230V\" },\n { pid: \"0xA252\", name: \"Phoenix Inverter 24V 500VA 230V\" },\n { pid: \"0xA254\", name: \"Phoenix Inverter 48V 500VA 230V\" },\n { pid: \"0xA259\", name: \"Phoenix Inverter 12V 500VA 120V\" },\n { pid: \"0xA25A\", name: \"Phoenix Inverter 24V 500VA 120V\" },\n { pid: \"0xA25C\", name: \"Phoenix Inverter 48V 500VA 120V\" },\n { pid: \"0xA261\", name: \"Phoenix Inverter 12V 800VA 230V\" },\n { pid: \"0xA262\", name: \"Phoenix Inverter 24V 800VA 230V\" },\n { pid: \"0xA264\", name: \"Phoenix Inverter 48V 800VA 230V\" },\n { pid: \"0xA269\", name: \"Phoenix Inverter 12V 800VA 120V\" },\n { pid: \"0xA26A\", name: \"Phoenix Inverter 24V 800VA 120V\" },\n { pid: \"0xA26C\", name: \"Phoenix Inverter 48V 800VA 120V\" },\n { pid: \"0xA271\", name: \"Phoenix Inverter 12V 1200VA 230V\" },\n { pid: \"0xA272\", name: \"Phoenix Inverter 24V 1200VA 230V\" },\n { pid: \"0xA274\", name: \"Phoenix Inverter 48V 1200VA 230V\" },\n { pid: \"0xA279\", name: \"Phoenix Inverter 12V 1200VA 120V\" },\n { pid: \"0xA27A\", name: \"Phoenix Inverter 24V 1200VA 120V\" },\n { pid: \"0xA27C\", name: \"Phoenix Inverter 48V 1200VA 120V\" },\n { pid: \"0xA281\", name: \"Phoenix Inverter 12V 1600VA 230V\" },\n { pid: \"0xA282\", name: \"Phoenix Inverter 24V 1600VA 230V\" },\n { pid: \"0xA284\", name: \"Phoenix Inverter 48V 1600VA 230V\" },\n { pid: \"0xA291\", name: \"Phoenix Inverter 12V 2000VA 230V\" },\n { pid: \"0xA292\", name: \"Phoenix Inverter 24V 2000VA 230V\" },\n { pid: \"0xA294\", name: \"Phoenix Inverter 48V 2000VA 230V\" },\n { pid: \"0xA2A1\", name: \"Phoenix Inverter 12V 3000VA 230V\" },\n { pid: \"0xA2A2\", name: \"Phoenix Inverter 24V 3000VA 230V\" },\n { pid: \"0xA2A4\", name: \"Phoenix Inverter 48V 3000VA 230V\" }\n ];\n\n const device = supportedDevices.find(device => device.pid === msg.pid);\n return device ? msg : null; // Return msg if supported, otherwise null\n}\nif (handlePhoenixInverter(msg)) { return msg}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":380,"wires":[["1bb9fe8186ec0a2c"]]},{"id":"07dd43d13ddc443c","type":"function","z":"eaf4189c977e6ca6","name":"Check Smart Solar","func":"function handleSolarMPPT(msg) {\n const supportedDevices = [\n { pid: \"0x0300\", name: \"BlueSolar MPPT 70|15\" },\n { pid: \"0xA040\", name: \"BlueSolar MPPT 75|50\" },\n { pid: \"0xA041\", name: \"BlueSolar MPPT 150|35\" },\n { pid: \"0xA042\", name: \"BlueSolar MPPT 75|15\" },\n { pid: \"0xA043\", name: \"BlueSolar MPPT 100|15\" },\n { pid: \"0xA044\", name: \"BlueSolar MPPT 100|30\" },\n { pid: \"0xA045\", name: \"BlueSolar MPPT 100|50\" },\n { pid: \"0xA046\", name: \"BlueSolar MPPT 150|70\" },\n { pid: \"0xA047\", name: \"BlueSolar MPPT 150|100\" },\n { pid: \"0xA049\", name: \"BlueSolar MPPT 100|50 rev2\" },\n { pid: \"0xA04A\", name: \"BlueSolar MPPT 100|30 rev2\" },\n { pid: \"0xA04B\", name: \"BlueSolar MPPT 150|35 rev2\" },\n { pid: \"0xA04C\", name: \"BlueSolar MPPT 75|10\" },\n { pid: \"0xA04D\", name: \"BlueSolar MPPT 150|45\" },\n { pid: \"0xA04E\", name: \"BlueSolar MPPT 150|60\" },\n { pid: \"0xA04F\", name: \"BlueSolar MPPT 150|85\" },\n { pid: \"0xA050\", name: \"SmartSolar MPPT 250|100\" },\n { pid: \"0xA051\", name: \"SmartSolar MPPT 150|100\" },\n { pid: \"0xA052\", name: \"SmartSolar MPPT 150|85\" },\n { pid: \"0xA053\", name: \"SmartSolar MPPT 75|15\" },\n { pid: \"0xA054\", name: \"SmartSolar MPPT 75|10\" },\n { pid: \"0xA055\", name: \"SmartSolar MPPT 100|15\" },\n { pid: \"0xA056\", name: \"SmartSolar MPPT 100|30\" },\n { pid: \"0xA057\", name: \"SmartSolar MPPT 100|50\" },\n { pid: \"0xA058\", name: \"SmartSolar MPPT 150|35\" },\n { pid: \"0xA059\", name: \"SmartSolar MPPT 150|100 rev2\" },\n { pid: \"0xA05A\", name: \"SmartSolar MPPT 150|85 rev2\" },\n { pid: \"0xA05B\", name: \"SmartSolar MPPT 250|70\" },\n { pid: \"0xA05C\", name: \"SmartSolar MPPT 250|85\" },\n { pid: \"0xA05D\", name: \"SmartSolar MPPT 250|60\" },\n { pid: \"0xA05E\", name: \"SmartSolar MPPT 250|45\" },\n { pid: \"0xA05F\", name: \"SmartSolar MPPT 100|20\" },\n { pid: \"0xA060\", name: \"SmartSolar MPPT 100|20 48V\" },\n { pid: \"0xA061\", name: \"SmartSolar MPPT 150|45\" },\n { pid: \"0xA062\", name: \"SmartSolar MPPT 150|60\" },\n { pid: \"0xA063\", name: \"SmartSolar MPPT 150|70\" },\n { pid: \"0xA064\", name: \"SmartSolar MPPT 250|85 rev2\" },\n { pid: \"0xA065\", name: \"SmartSolar MPPT 250|100 rev2\" },\n { pid: \"0xA066\", name: \"BlueSolar MPPT 100|20\" },\n { pid: \"0xA067\", name: \"BlueSolar MPPT 100|20 48V\" },\n { pid: \"0xA068\", name: \"SmartSolar MPPT 250|60 rev2\" },\n { pid: \"0xA069\", name: \"SmartSolar MPPT 250|70 rev2\" },\n { pid: \"0xA06A\", name: \"SmartSolar MPPT 150|45 rev2\" },\n { pid: \"0xA06B\", name: \"SmartSolar MPPT 150|60 rev2\" },\n { pid: \"0xA06C\", name: \"SmartSolar MPPT 150|70 rev2\" },\n { pid: \"0xA06D\", name: \"SmartSolar MPPT 150|85 rev3\" },\n { pid: \"0xA06E\", name: \"SmartSolar MPPT 150|100 rev3\" },\n { pid: \"0xA06F\", name: \"BlueSolar MPPT 150|45 rev2\" },\n { pid: \"0xA070\", name: \"BlueSolar MPPT 150|60 rev2\" },\n { pid: \"0xA071\", name: \"BlueSolar MPPT 150|70 rev2\" },\n { pid: \"0xA072\", name: \"BlueSolar MPPT 150/45 rev3\" },\n { pid: \"0xA073\", name: \"SmartSolar MPPT 150/45 rev3\" },\n { pid: \"0xA074\", name: \"SmartSolar MPPT 75/10 rev2\" },\n { pid: \"0xA075\", name: \"SmartSolar MPPT 75/15 rev2\" },\n { pid: \"0xA076\", name: \"BlueSolar MPPT 100/30 rev3\" },\n { pid: \"0xA077\", name: \"BlueSolar MPPT 100/50 rev3\" },\n { pid: \"0xA078\", name: \"BlueSolar MPPT 150/35 rev3\" },\n { pid: \"0xA079\", name: \"BlueSolar MPPT 75/10 rev2\" },\n { pid: \"0xA07A\", name: \"BlueSolar MPPT 75/15 rev2\" },\n { pid: \"0xA07B\", name: \"BlueSolar MPPT 100/15 rev2\" },\n { pid: \"0xA07C\", name: \"BlueSolar MPPT 75/10 rev3\" },\n { pid: \"0xA07D\", name: \"BlueSolar MPPT 75/15 rev3\" },\n { pid: \"0xA07E\", name: \"SmartSolar MPPT 100/30 12V\" },\n { pid: \"0xA07F\", name: \"All-In-1 SmartSolar MPPT 75/15 12V\" },\n { pid: \"0xA102\", name: \"SmartSolar MPPT VE.Can 150/70\" },\n { pid: \"0xA103\", name: \"SmartSolar MPPT VE.Can 150/45\" },\n { pid: \"0xA104\", name: \"SmartSolar MPPT VE.Can 150/60\" },\n { pid: \"0xA105\", name: \"SmartSolar MPPT VE.Can 150/85\" },\n { pid: \"0xA106\", name: \"SmartSolar MPPT VE.Can 150/100\" },\n { pid: \"0xA107\", name: \"SmartSolar MPPT VE.Can 250/45\" },\n { pid: \"0xA108\", name: \"SmartSolar MPPT VE.Can 250/60\" },\n { pid: \"0xA109\", name: \"SmartSolar MPPT VE.Can 250/70\" },\n { pid: \"0xA10A\", name: \"SmartSolar MPPT VE.Can 250/85\" },\n { pid: \"0xA10B\", name: \"SmartSolar MPPT VE.Can 250/100\" },\n { pid: \"0xA10C\", name: \"SmartSolar MPPT VE.Can 150/70 rev2\" },\n { pid: \"0xA10D\", name: \"SmartSolar MPPT VE.Can 150/85 rev2\" },\n { pid: \"0xA10E\", name: \"SmartSolar MPPT VE.Can 150/100 rev2\" },\n { pid: \"0xA10F\", name: \"BlueSolar MPPT VE.Can 150/100\" },\n { pid: \"0xA112\", name: \"BlueSolar MPPT VE.Can 250/70\" },\n { pid: \"0xA113\", name: \"BlueSolar MPPT VE.Can 250/100\" },\n { pid: \"0xA114\", name: \"SmartSolar MPPT VE.Can 250/70 rev2\" },\n { pid: \"0xA115\", name: \"SmartSolar MPPT VE.Can 250/100 rev2\" },\n { pid: \"0xA116\", name: \"SmartSolar MPPT VE.Can 250/85 rev2\" },\n { pid: \"0xA117\", name: \"BlueSolar MPPT VE.Can 150/100 rev2\" }\n ];\n\n const device = supportedDevices.find(device => device.pid === msg.pid);\n return device ? msg : null; // Return msg if supported, otherwise null\n}\n\nif (handleSolarMPPT(msg)) { return msg}","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":440,"wires":[["78da6cc6771ab890"]]},{"id":"8ae17b5c444c27c9","type":"function","z":"eaf4189c977e6ca6","name":"Check SHUNT ","func":"// BMV-700\nif(msg.pid == \"0x203\") \nreturn msg;\n\n// BMV-702\nif(msg.pid == \"0x204\") \nreturn msg;\n\n// BMV-700H\nif(msg.pid == \"0x205\") \nreturn msg;\n\n// SmartShunt 500A/50mV\nif(msg.pid == \"0xA389\") \nreturn msg;\n\n//SmartShunt IP65\nif(msg.pid == \"0xC030\")\nreturn msg;\n\n//SmartShunt IP65 rev2\nif(msg.pid == \"0xC035\")\nreturn msg;\n\n//BMV??? not tested yet\nif(msg.pid == \"0xA381\")\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":500,"wires":[["6f74422bb392ff95"]]},{"id":"d12756ddbec66b62","type":"ui_ui_control","z":"eaf4189c977e6ca6","name":"","x":1340,"y":980,"wires":[[]]},{"id":"315fb185ecb5ce9b","type":"function","z":"eaf4189c977e6ca6","name":"Show in INFO","func":"msg.payload = {\"group\":{\"show\":[\"Info_Victron_Shunt\"]}};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1160,"y":980,"wires":[["d12756ddbec66b62"]]},{"id":"fe3165c954f7667f","type":"delay","z":"eaf4189c977e6ca6","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"3","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":920,"y":980,"wires":[["315fb185ecb5ce9b"]]},{"id":"c806a94dd40c6907","type":"inject","z":"eaf4189c977e6ca6","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":960,"y":1020,"wires":[["315fb185ecb5ce9b"]]},{"id":"b64ce745ceb27bdb","type":"ui_text","z":"eaf4189c977e6ca6","group":"7bd243ed.9f706c","order":6,"width":"3","height":"1","name":"","label":"Daily Yield","format":"{{msg.payload}} Wh","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1110,"y":620,"wires":[]},{"id":"0c6f96888c02efa6","type":"ui_text","z":"eaf4189c977e6ca6","group":"7bd243ed.9f706c","order":5,"width":0,"height":0,"name":"","label":"Panel Power Max","format":"{{payload.maxPowerToday}} W","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1130,"y":580,"wires":[]},{"id":"28ba0ad37404c839","type":"ui_text","z":"eaf4189c977e6ca6","group":"7bd243ed.9f706c","order":7,"width":"3","height":"1","name":"","label":"Yesterday Yield","format":"{{msg.payload}} Wh","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1120,"y":660,"wires":[]},{"id":"45f1f8e8636dbe61","type":"function","z":"eaf4189c977e6ca6","name":"dailyYield","func":"msg.payload = msg.payload.kwhcountertoday * 10;\nglobal.set(\"VE_dailyyield\",msg.payload);\nreturn msg;\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":880,"y":620,"wires":[["b64ce745ceb27bdb"]]},{"id":"f8be803186426e8b","type":"function","z":"eaf4189c977e6ca6","name":"yesterdayYield","func":"msg.payload = msg.payload.kwhcounterYesterday * 10;\nglobal.set(\"VE_yesterdayyield\",msg.payload);\nreturn msg;\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":900,"y":660,"wires":[["28ba0ad37404c839"]]},{"id":"32d317419d16d410","type":"function","z":"eaf4189c977e6ca6","name":"TimeToGo","func":"const minutes = msg.payload.TTG;\n\nfunction formatTime(minutes) {\n let weeks = Math.floor(minutes / (7 * 24 * 60));\n minutes %= (7 * 24 * 60);\n\n let days = Math.floor(minutes / (24 * 60));\n minutes %= (24 * 60);\n\n let hours = Math.floor(minutes / 60);\n minutes %= 60;\n\n // Construct the time string dynamically\n let result = [];\n if (weeks > 0) result.push(`${weeks} week${weeks > 1 ? 's' : ''}`);\n if (days > 0) result.push(`${days} day${days > 1 ? 's' : ''}`);\n if (hours > 0) result.push(`${hours} hour${hours > 1 ? 's' : ''}`);\n if (minutes > 0) result.push(`${minutes} minute${minutes > 1 ? 's' : ''}`);\n\n return result.join(\", \");\n}\n\nif(minutes == -1) {\n msg.label=\"Time to Full\"\n global.set(\"VE_timetogo\", \"charging\");\n\n // Get values from global context\n let consumedAh = Number(global.get(\"VE_consumedAH\")); // Negative value (e.g., -55.55)\n let chargingCurrentA = Number(global.get(\"VE_Current\")); // Current in Amps\n\n // Prevent division by zero\n if (chargingCurrentA <= 0) {\n msg.payload = \"Not charging\";\n return msg;\n }\n\n // Calculate time in minutes\n let timeToFullMinutes = (consumedAh * -1) / chargingCurrentA / 0.016666666;\n\n // Convert minutes to weeks, days, hours, and minutes\n let weeks = Math.floor(timeToFullMinutes / 10080); // 10080 minutes in a week\n let days = Math.floor((timeToFullMinutes % 10080) / 1440); // 1440 minutes in a day\n let hours = Math.floor((timeToFullMinutes % 1440) / 60);\n let minutes = Math.round(timeToFullMinutes % 60);\n\n // Build the formatted result dynamically, omitting zero values\n let timeFormatted = [];\n\n if (weeks > 0) timeFormatted.push(`${weeks} week${weeks > 1 ? \"s\" : \"\"}`);\n if (days > 0) timeFormatted.push(`${days} day${days > 1 ? \"s\" : \"\"}`);\n if (hours > 0) timeFormatted.push(`${hours} hour${hours > 1 ? \"s\" : \"\"}`);\n if (minutes > 0) timeFormatted.push(`${minutes} minute${minutes > 1 ? \"s\" : \"\"}`);\n\n // If all values are 0, show \"less than a minute\"\n if (timeFormatted.length === 0) {\n timeFormatted.push(\"less than a minute\");\n }\n\n // Join values with commas\n msg.payload = timeFormatted.join(\", \");\n global.set(\"VE_TimeToFull\", msg.payload);\n}\nelse {\n msg.payload = formatTime(minutes)\n msg.label = \"Time To Go\"\n global.set(\"VE_timetogo\",msg.payload);\n}\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":890,"y":940,"wires":[["a9aa359b960c8557"]]},{"id":"a9aa359b960c8557","type":"ui_text","z":"eaf4189c977e6ca6","group":"6ea26502.8c263c","order":0,"width":0,"height":0,"name":"ttgo","label":"{{msg.label}}","format":"<center>{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1090,"y":940,"wires":[]},{"id":"4b3907bf.1686b8","type":"ui_group","name":"Victron Inverter","tab":"150fce8d5d1bec4f","order":1,"disp":true,"width":"6","collapse":true,"className":""},{"id":"7bd243ed.9f706c","type":"ui_group","name":"Victron SmartSolar","tab":"150fce8d5d1bec4f","order":2,"disp":true,"width":"6","collapse":true,"className":""},{"id":"6ea26502.8c263c","type":"ui_group","name":"Victron Shunt","tab":"150fce8d5d1bec4f","order":3,"disp":true,"width":"6","collapse":true,"className":""},{"id":"150fce8d5d1bec4f","type":"ui_tab","name":"Victron","icon":"mi-usb","order":4,"disabled":false,"hidden":false}]
Gruß Wulle