nach langem testen hier wenn jemand Interesse hat ein funktionierender Flow für das Auslesen einer Wärmepumpe via Modbus TCP und Umwandlung eines FLOAT 32Bit Register Wertes auf eine lesbare Zahl
Grundlage hierzu sind:
- NodeRed / RedMatic
- node-red-dashboard
- node-red-contrib-modbus
- node-red-contrib-float (oder wie im Flow über 2 Function Nodes)
Code: Alles auswählen
[{"id":"59c3fd26.2b5c34","type":"modbus-read","z":"bb601978.c9832","name":"IDM Außentemperatur","topic":"","showStatusActivities":true,"logIOActivities":false,"showErrors":true,"unitid":"1","dataType":"InputRegister","adr":"1000","quantity":"2","rate":"10","rateUnit":"m","delayOnStart":false,"startDelayTime":"","server":"fa4c200f.dd19f","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":true,"x":140,"y":40,"wires":[["e3ed54c7.51572"],[]]},{"id":"cb6b08a8.61555","type":"function","z":"bb601978.c9832","name":"","func":"var gerundet = Math.round( msg.payload * 10 ) / 10;\nmsg.payload = gerundet;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":540,"y":40,"wires":[["62417ef2.e42298","b6209f40.054e28"]]},{"id":"e3ed54c7.51572","type":"function","z":"bb601978.c9832","name":"32bit to float","func":"var ui16 = new Uint16Array(msg.payload);\nvar fl32 = new Float32Array(ui16.buffer, ui16.byteOffset, ui16.byteLength / Float32Array.BYTES_PER_ELEMENT);\nmsg.payload=fl32;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":370,"y":40,"wires":[["cb6b08a8.61555"]]},{"id":"62417ef2.e42298","type":"ccu-sysvar","z":"bb601978.c9832","name":"Aussentemperatur","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":730,"y":40,"wires":[["c7919ab3.afec08"]]},{"id":"c7919ab3.afec08","type":"ui_text","z":"bb601978.c9832","group":"b39ff569.0103e","order":1,"width":0,"height":0,"name":"","label":"Aussentemperatur","format":"{{msg.payload}}","layout":"row-spread","x":950,"y":40,"wires":[]},{"id":"fa4c200f.dd19f","type":"modbus-client","name":"IDM Wärmepumpe","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"192.168.123.12","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","reconnectOnTimeout":true,"reconnectTimeout":"2000","parallelUnitIdsAllowed":true},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","queueTimeout":"5000","queuePause":"250","contextStore":""},{"id":"b39ff569.0103e","type":"ui_group","name":"Wärmepumpe","tab":"c99335cd.a8c168","order":2,"disp":true,"width":"6","collapse":true},{"id":"c99335cd.a8c168","type":"ui_tab","name":"Leistungs-/Messwertdaten","icon":"dashboard","disabled":false,"hidden":false}]
Anregungen oder Verbesserungen gerne angenommen
Bin noch Frischling in NodeRed