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ß
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden