NEWS
Payload mit Array Wert auslesen
-
Hallo zusammen,
ich möchte gerne aus einer Modbus Nachricht mit einem Array von 20 Werte diese auslesen und aufsplitten.
Leider weiß ich nicht wie ich das machen muss. Habe schon vieles versucht aber ohne Erfolg. Kann mir da einer Helfen?
Habe das mit folgendem Code versucht aber bekomme die Werte nicht aus dem Array. Was mache ich da falsch?
var voltageL1 = '10' var voltageL2 = msg.payload[1];// 3,4 var voltageL3 = msg.payload[2]; // 5,6 var powerL1 = msg.payload[3]; // 7,8 var powerL2 = msg.payload[4]; // 9,10 var powerL3 = msg.payload[5];// 11,12 var demandL1 = msg.payload[6]; // 13,14 var demandL2 = msg.payload[7]; // 15,16 var demandL3 = msg.payload[8]; // 17,18 var voltageAVG = msg.payload[9]; // 43-46 var powerAVG = msg.payload[10]; // 47,48 return [ { payload: { L1: { voltage: voltageL1, power: powerL1, demand: demandL1 }, L2: { voltage: voltageL2, power: powerL2, demand: demandL2 }, L3: { voltage: voltageL3, power: powerL3, demand: demandL3 }, voltageAVG: voltageAVG, powerAVG: powerAVG, } } ];
Gruß
-
Hier einmal ein Beispielflow
MfG
jean
[{"id":"d6a87e6f.b5e168","type":"modbus-read","z":"9c15b42b.7f30f8","name":"Waermemenge","topic":"Waermemenge","showStatusActivities":false,"showErrors":false,"unitid":"","dataType":"HoldingRegister","adr":"5096","quantity":"3","rate":"1","rateUnit":"m","delayOnStart":false,"startDelayTime":"","server":"c40455ee.d2e0c8","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":125,"y":115,"wires":[["477efe2b.53e9c","a06ba534.78931","ca759382.a1b0e8"],[]]},{"id":"477efe2b.53e9c","type":"function","z":"9c15b42b.7f30f8","name":"direct mapping","func":" var msg3 = msg.payload.map(function (p) {\n return {payload: p};\n });\n return msg3;","outputs":3,"noerr":0,"x":422.99998474121094,"y":111,"wires":[["49462990.00dd3"],["fdc81824.4b8dc"],["f88b5c9d.fdbf3"]]},{"id":"49462990.00dd3","type":"debug","z":"9c15b42b.7f30f8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":682.1666717529297,"y":90,"wires":[]},{"id":"fdc81824.4b8dc","type":"debug","z":"9c15b42b.7f30f8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":685.1666107177734,"y":134,"wires":[]},{"id":"f88b5c9d.fdbf3","type":"debug","z":"9c15b42b.7f30f8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":689.1666107177734,"y":178,"wires":[]},{"id":"ca759382.a1b0e8","type":"function","z":"9c15b42b.7f30f8","name":"Zaehlerstand","func":"msg.zaehlerstand=msg.payload[0]+msg.payload[1]*10000+msg.payload[2]*100000000;\nreturn msg;","outputs":1,"noerr":0,"x":471.1666717529297,"y":288.6666259765625,"wires":[["99800f51.4a4eb8"]]},{"id":"a06ba534.78931","type":"modbus-response","z":"9c15b42b.7f30f8","name":"","registerShowMax":20,"x":478.1666717529297,"y":215.0001220703125,"wires":[]},{"id":"99800f51.4a4eb8","type":"ui_text","z":"9c15b42b.7f30f8","group":"f022f05b.fd7708","order":1,"width":0,"height":0,"name":"Waermemenge","label":" Waermemenge","format":"{{msg.zaehlerstand}} kWh","layout":"row-spread","x":720.1666107177734,"y":289,"wires":[]},{"id":"5080a42f.54623c","type":"modbus-read","z":"9c15b42b.7f30f8","name":"Laufzeiten","topic":"Laufzeiten","showStatusActivities":false,"showErrors":false,"unitid":"","dataType":"HoldingRegister","adr":"71","quantity":"8","rate":"1","rateUnit":"m","delayOnStart":false,"startDelayTime":"","server":"c40455ee.d2e0c8","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":180,"y":391,"wires":[["7192cb95.27f124","b401a72f.6fc09","81bf833e.77b9a","bb996011.615bb8","51784375.e29adc"],[]]},{"id":"7192cb95.27f124","type":"function","z":"9c15b42b.7f30f8","name":"Verdichter1","func":"msg.verdichter1=msg.payload[1];\nreturn msg;","outputs":1,"noerr":0,"x":437,"y":459,"wires":[["fc81d15a.ea1198"]]},{"id":"fc81d15a.ea1198","type":"ui_text","z":"9c15b42b.7f30f8","group":"f022f05b.fd7708","order":2,"width":0,"height":0,"name":"","label":"Verdichter1","format":"{{msg.verdichter1}} Stunden","layout":"row-spread","x":677,"y":461,"wires":[]},{"id":"b401a72f.6fc09","type":"modbus-response","z":"9c15b42b.7f30f8","name":"","registerShowMax":20,"x":436.00001525878906,"y":359.66664123535156,"wires":[]},{"id":"81bf833e.77b9a","type":"function","z":"9c15b42b.7f30f8","name":"Verdichter2","func":"msg.verdichter2=msg.payload[2];\nreturn msg;","outputs":1,"noerr":0,"x":443.83331298828125,"y":517.3331909179688,"wires":[["e2993a5e.7f4f1"]]},{"id":"e2993a5e.7f4f1","type":"ui_text","z":"9c15b42b.7f30f8","group":"f022f05b.fd7708","order":3,"width":0,"height":0,"name":"","label":"Verdichter2","format":"{{msg.verdichter2}} Stunden","layout":"row-spread","x":680.8333129882812,"y":521.3331909179688,"wires":[]},{"id":"bb996011.615bb8","type":"function","z":"9c15b42b.7f30f8","name":"Ventilator","func":"msg.ventilator=msg.payload[3];\nreturn msg;","outputs":1,"noerr":0,"x":437.83331298828125,"y":569.3331909179688,"wires":[["25fb3b7b.c762cc"]]},{"id":"25fb3b7b.c762cc","type":"ui_text","z":"9c15b42b.7f30f8","group":"f022f05b.fd7708","order":4,"width":0,"height":0,"name":"","label":"Ventilator","format":"{{msg.ventilator}} Stunden","layout":"row-spread","x":684.8333129882812,"y":578.3331909179688,"wires":[]},{"id":"51784375.e29adc","type":"function","z":"9c15b42b.7f30f8","name":"Zirkulationspumpe","func":"msg.zirkulation=msg.payload[5];\nreturn msg;","outputs":1,"noerr":0,"x":474.83331298828125,"y":638.3331909179688,"wires":[["eb1d3848.3786f8"]]},{"id":"eb1d3848.3786f8","type":"ui_text","z":"9c15b42b.7f30f8","group":"f022f05b.fd7708","order":5,"width":0,"height":0,"name":"","label":"Zirkulationspumpe","format":"{{msg.zirkulation}} Stunden","layout":"row-spread","x":731.8333129882812,"y":646.3331909179688,"wires":[]},{"id":"c40455ee.d2e0c8","type":"modbus-client","z":"","name":"Dimplex Wärmepumpe","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"192.168.1.17","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectTimeout":"2000"},{"id":"f022f05b.fd7708","type":"ui_group","z":"","name":"Zähler","tab":"57cf4a86.b1929c","order":4,"disp":true,"width":"6","collapse":false},{"id":"57cf4a86.b1929c","type":"ui_tab","z":"","name":"Dimplex","icon":"dashboard","order":3}]
-
Danke.
Ich habe aber jetzt noch eine andere Lösung gefunden damit ich die Werte noch umrechnen kann, das war sonst nicht möglich.
Gruß