ich habe einen Raspberrymatic PI 4 und Node-Red installiert. Jetzt wollte ich gerne einen Wert vom ModBus lesen, wofür ich mir eine entsprechende Node installiert habe. Leider geht die Modbus-contrib-Node ja wohl nicht, da sie auch Teile, die eine serielle Schnittstelle erfordern, beinhaltet, die wohl nicht unterstützt wird. Deshalb habe ich nur eine sehr einfache Node gefunden, aber sie liest die Daten vom ModBus wohl runter.
Ich möchte nun einfach einen String (16 Zeichen) aus einem Register lesen und als msg.payload weitergeben. Dazu habe ich eine function eingerichtet, weiss aber mangels Javascript Kenntnissen nicht genau, wie es geht. Ich kann zwar im Debug sehen, dass er mir Werte auswirft, aber sie werden halt wohl als UInt16 ausgelesen(?)
Kann mir einer sagen, wie ich es schaffe, dass er daraus einen String weiterleitet? Danke.
Code: Alles auswählen
[{"id":"d63108a2.888f28","type":"tab","label":"Elgris","disabled":false,"info":"SmartMeter auslesen"},{"id":"61b35201.20fa94","type":"modbustcp-read","z":"d63108a2.888f28","name":"Elgris SmartMeter","topic":"SmartMeter auslesen","dataType":"HoldingRegister","adr":"40004","quantity":"16","rate":"5","rateUnit":"s","server":"397e8427.81075c","ieeeType":"off","ieeeBE":"true","x":130,"y":120,"wires":[["1c7c7e6a.e737d2"]]},{"id":"9e59a2cd.562a1","type":"debug","z":"d63108a2.888f28","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":730,"y":120,"wires":[]},{"id":"1c7c7e6a.e737d2","type":"function","z":"d63108a2.888f28","name":"","func":"const buf = Buffer.alloc(16,'','utf8');\nconst value = buf.toString('utf8');\nmsg.payload = value; //buf.toString('latin1');\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":420,"y":120,"wires":[["9e59a2cd.562a1"]]},{"id":"397e8427.81075c","type":"modbustcp-server","name":"Elgris","host":"192.168.178.58","port":"502","unit_id":"1","reconnecttimeout":""}]