Cannot mix BigInt and other types
Hi,
when using the buffer parser node i get an error: "TypeError: Cannot mix BigInt and other types, use explicit conversions"
This occurs only, when i use type uint32 (be) AND biguint64 (be) in the same settings of the node. Switching back from biguint64 (be) to uint32 (be) the error disappears. See screenshot attached:
Error:
Hi please create a demo flow with data via an inject nodes that demonstrates this issue.
Hi,
i created a test node with values i receive via modbus server node. I hope this helps you figuring out the issue. Please let me know if i can help you in any way. I appreciate your help!
Thanks in advance!
[{"id":"2d6523cec270594d","type":"tab","label":"Buffer Parser Error - Test node","disabled":false,"info":"","env":[]},{"id":"7d5c3b2be20e3631","type":"inject","z":"2d6523cec270594d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[223,4,221,0,0,0,0,1,22,230,41,0,0,0,0,0,2,57,27,0,0,0,0,2,194,224,205,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,69,173,246,0,0,0,0,1,61,52,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,223,59,109,0,0,0,0,0,96,135,110,0,0,0,0,0,43,2,108,0,0,0,0,0,113,161,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,28,8,20,0,0,0,0,0,107,140,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,194,150,204,0,0,0,0,0,121,18,227,0,0,0,0,0,8,43,149,0,0,0,0,1,51,61,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,74,183,64,0,0,0,0,0,160,71,219,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,135,119,100,0,0,0,0,0,135,144,149,0,0,0,0,0,1,167,118,0]","payloadType":"json","x":170,"y":100,"wires":[["d47b7bd5541a8008","3d5b0fb3d3afd008"]]},{"id":"d47b7bd5541a8008","type":"buffer-parser","z":"2d6523cec270594d","name":"BIGUINT64 (BE)","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"uint32be","name":"Wirkleistung_Summe_Positiv","offset":0,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Wirkleistung_Summe_Negativ","offset":4,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Blindleistung_Summe_Positiv","offset":8,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Blindleistung_Summe_Negativ","offset":12,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Scheinleistung_Summe_Positiv","offset":32,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Scheinleistung_Summe_Negativ","offset":36,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Leistungsfaktor","offset":48,"length":1,"offsetbit":0,"scale":"0.001","mask":""},{"type":"uint32be","name":"Netzfrequenz","offset":52,"length":1,"offsetbit":0,"scale":"0.001","mask":""},{"type":"uint32be","name":"Active_Power_L1_Positiv","offset":80,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Active_Power_L1_Negativ","offset":84,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L1_Positiv","offset":88,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L1_Negativ","offset":92,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L1_Positiv","offset":112,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L1_Negativ","offset":116,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Current_L1","offset":120,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Voltage_L1","offset":124,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Power_Factor_1","offset":128,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Active_Power_L2_Positiv","offset":160,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Active_Power_L2_Negativ","offset":164,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L2_Positiv","offset":168,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L2_Negativ","offset":172,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L2_Positiv","offset":192,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L2_Negativ","offset":196,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Current_L2","offset":200,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Voltage_L2","offset":204,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Power_Factor_L2","offset":208,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Active_Power_L3_Positiv","offset":240,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Active_Power_L3_Negativ","offset":244,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L3_Positiv","offset":248,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L3_Negativ","offset":252,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L3_Positiv","offset":272,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L3_Negativ","offset":276,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Current_L3","offset":280,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Voltage_L3","offset":284,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"biguint64be","name":"Power_Factor_L3","offset":288,"length":1,"offsetbit":0,"scale":"0.1","mask":""}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","resultType":"value","resultTypeType":"return","multipleResult":false,"fanOutMultipleResult":false,"setTopic":true,"outputs":1,"x":410,"y":80,"wires":[["fc9a9ba9f4b44c25"]]},{"id":"fc9a9ba9f4b44c25","type":"debug","z":"2d6523cec270594d","name":"Error DEBUG","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":620,"y":80,"wires":[]},{"id":"3d5b0fb3d3afd008","type":"buffer-parser","z":"2d6523cec270594d","name":"ONLY UINT32 (BE)","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"uint32be","name":"Wirkleistung_Summe_Positiv","offset":0,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Wirkleistung_Summe_Negativ","offset":4,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Blindleistung_Summe_Positiv","offset":8,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Blindleistung_Summe_Negativ","offset":12,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Scheinleistung_Summe_Positiv","offset":32,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Scheinleistung_Summe_Negativ","offset":36,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Leistungsfaktor","offset":48,"length":1,"offsetbit":0,"scale":"0.001","mask":""},{"type":"uint32be","name":"Netzfrequenz","offset":52,"length":1,"offsetbit":0,"scale":"0.001","mask":""},{"type":"uint32be","name":"Active_Power_L1_Positiv","offset":80,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Active_Power_L1_Negativ","offset":84,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L1_Positiv","offset":88,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L1_Negativ","offset":92,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L1_Positiv","offset":112,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L1_Negativ","offset":116,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Current_L1","offset":120,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Voltage_L1","offset":124,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Power_Factor_1","offset":128,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Active_Power_L2_Positiv","offset":160,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Active_Power_L2_Negativ","offset":164,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L2_Positiv","offset":168,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L2_Negativ","offset":172,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L2_Positiv","offset":192,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L2_Negativ","offset":196,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Current_L2","offset":200,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Voltage_L2","offset":204,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Power_Factor_L2","offset":208,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Active_Power_L3_Positiv","offset":240,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Active_Power_L3_Negativ","offset":244,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L3_Positiv","offset":248,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Reactive_Power_L3_Negativ","offset":252,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L3_Positiv","offset":272,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Apparent_Power_L3_Negativ","offset":276,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"int32be","name":"Current_L3","offset":280,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Voltage_L3","offset":284,"length":1,"offsetbit":0,"scale":"0.1","mask":""},{"type":"uint32be","name":"Power_Factor_L3","offset":288,"length":1,"offsetbit":0,"scale":"0.1","mask":""}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","resultType":"value","resultTypeType":"return","multipleResult":false,"fanOutMultipleResult":false,"setTopic":true,"outputs":1,"x":410,"y":140,"wires":[["4f2533f61fb9bb1c"]]},{"id":"4f2533f61fb9bb1c","type":"debug","z":"2d6523cec270594d","name":"Working Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":620,"y":140,"wires":[]}]
Great, thanks for the share.
I can confirm this is a bug - however, you can get past this today (without waiting for a bug fix release) by changing the type momentarily and deleting the scaling...
Note for future me - when BigInt is selected, dont expect user to clear out the scale - add processing logic to do that.