PowerStationMonitor/nodered/Kunkin Control.json

1 line
13 KiB
JSON
Raw Normal View History

2022-02-09 09:55:09 +01:00
[{"id":"3abae06a.2b9bd","type":"tab","label":"Kunkin KP184 Read and control","disabled":false,"info":"Read all Measurements from Kunkin KP184 and sends it to OpenHAB for Visualization.\n\nSetpoints from OpenHAB are sent to DC Load too.\n\nSerialports Settings\n\nBaud 115200\nDevice Adresse No.1\n\nDevice Adresse is statically because there is only one device present."},{"id":"a9ac179f.b9206","type":"inject","z":"3abae06a.2b9bd","name":"Poll Status","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"0.1","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":160,"wires":[["bc96a0a7.bf0438"]]},{"id":"f1d835ce.811","type":"function","z":"3abae06a.2b9bd","name":"CRC","func":"let data = Buffer.from(msg.payload);\n\nlet crc = 0xffff;\n\nfor (let i = 0; i < data.length; ++i) {\n crc ^= data[i];\n for (let j = 0; j < 8; ++j) {\n xor = 0;\n if ((crc & 1) != 0) {\n xor = 0xa001;\n }\n crc = (crc >> 1) ^ xor;\n }\n}\n\ndata = Buffer.concat([data, Buffer.alloc(2)])\n\ndata.writeUInt16BE(crc, data.length - 2);\n\nmsg.payload = data;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":730,"y":160,"wires":[["1e06e235.3d76e6"]]},{"id":"1e06e235.3d76e6","type":"serial request","z":"3abae06a.2b9bd","name":"","serial":"eed39e04.d91888","x":900,"y":160,"wires":[["86acc9ab.9d9398"]]},{"id":"86acc9ab.9d9398","type":"function","z":"3abae06a.2b9bd","name":"Calc V, A","func":"if (msg.payload[1] == 3 && msg.payload[2] == 30) {\n var voltage = {payload: (msg.payload[5] << 8 | msg.payload[6] << 8 | msg.payload[7]) / 1000};\n var current = {payload: (msg.payload[8] << 8 | msg.payload[9] << 8 | msg.payload[10]) / 1000};\n //var on = {payload: (msg.payload[3] & 0b10000000) >> 0}; // is true if on flag is set\n //var mode = {payload: (msg.payload[3] & 0b01100000) >> 5};\n var data = {payload: msg.payload}; //Data passthrough\n}\n\n\nreturn [voltage, current/*, on, mode*/, data];","outputs":3,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1080,"y":220,"wires":[["b1bf4dc6.7b854"],["746fa2cb.fef98c"],["207bd04d.7de5a"]]},{"id":"93d0b500.156ed8","type":"openhab-v2-out","z":"3abae06a.2b9bd","name":"","controller":"d8ac56fb.00594","item":"DC_Load_Voltage","topic":"ItemUpdate","topicType":"ohCommandType","payload":"payload","payloadType":"msg","allowItemOverride":false,"x":1810,"y":160,"wires":[]},{"id":"d90d4a9c.f0c9b","type":"openhab-v2-out","z":"3abae06a.2b9bd","name":"","controller":"d8ac56fb.00594","item":"DC_Load_Current","topic":"ItemUpdate","topicType":"ohCommandType","payload":"payload","payloadType":"msg","allowItemOverride":false,"x":1810,"y":220,"wires":[]},{"id":"bc96a0a7.bf0438","type":"function","z":"3abae06a.2b9bd","name":"Request Status","func":"msg.payload = [0x01, 0x03, 0x03, 0x00, 0x00, 0x00]\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":360,"y":160,"wires":[["f1d835ce.811"]]},{"id":"bc1e6987.c25368","type":"openhab-v2-out","z":"3abae06a.2b9bd","name":"","controller":"d8ac56fb.00594","item":"DC_Load_Mode","topic":"ItemUpdate","topicType":"ohCommandType","payload":"payload","payloadType":"msg","allowItemOverride":false,"x":1800,"y":340,"wires":[]},{"id":"190fa8b8.4bf09f","type":"openhab-v2-out","z":"3abae06a.2b9bd","name":"","controller":"d8ac56fb.00594","item":"DC_Load_OnOff","topic":"ItemUpdate","topicType":"ohCommandType","payload":"payload","payloadType":"msg","allowItemOverride":false,"x":1810,"y":280,"wires":[]},{"id":"207bd04d.7de5a","type":"buffer-parser","z":"3abae06a.2b9bd","name":"Parse States","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"bool","name":"OnOff","offset":3,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"bool","name":"Mode1","offset":3,"length":1,"offsetbit":1,"scale":"1","mask":""},{"type":"bool","name":"Mode2","offset":3,"length":1,"offsetbit":2,"scale":"1","mask":""}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgPropert