Hallo zenofmud,
I'm using a raspberry pi 3b+ computer to realize a pool control unit.
The version of the installed node red 0.20.5.
node.js V8.11.1.
I want to show all 10 seconds another temperature.
To do this I have a first line that describes the kind of temperature and a second line with the value of the temperature.
I tried to solve that problem with this flow:
[{"id":"83fd99bb.77784","type":"i2c_LCD_Output","z":"b63bfe40.86e8f8","name":"LCD-Ansteuerung","manufacturer":"Sainsmart","Line1":"Line1","Line2":"Line2","settings":"Basic","basic_screen_color":"ON","timeLimit":3,"timeLimitType":"minutes","i2c_device_number":1,"i2c_address":"0x27","advanced_clear":"clear","advanced_close":"close","advanced_color":"color","advanced_char0":"char0","advanced_char1":"char1","advanced_char2":"char2","advanced_char3":"char3","advanced_char4":"char4","advanced_char5":"char5","advanced_char6":"char6","advanced_char7":"char7","x":730,"y":140,"wires":[]},{"id":"859aa464.dad6d","type":"inject","z":"b63bfe40.86e8f8","name":"Every_10_Seconds","topic":"","payload":"","payloadType":"date","repeat":"10","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":140,"wires":[["3d7200d6.b7ef3","59fa5d98.9efdc4"]]},{"id":"3d7200d6.b7ef3","type":"function","z":"b63bfe40.86e8f8","name":"LCD-Anzeige-Umschalten","func":"var aktuell = global.get('AnzeigeTemp');\nif (aktuell == 'T1')\n{\n msg.Line1 = 'T1 Pooltemperatur:'\n msg.Line2 = global.get('T1') + ' °C';\n}\nif (aktuell == 'T2')\n{\n msg.Line1 = 'T2 Rücklauf Pool:';\n msg.Line2 = global.get('T2') + ' °C';\n}\nif (aktuell == 'T3')\n{\n msg.Line1 = 'T3 Solarabsorber:';\n msg.Line2 = global.get('T3') + ' °C';\n}\nif (aktuell == 'T4')\n{\n msg.Line1 = 'T4 Außentemperatur:';\n msg.Line2 = global.get('T4') + ' °C';\n}\n//aktuell auf den neuen Stand bringen\nif (aktuell == 'T1')\n{\n global.set('AnzeigeTemp','T2');\n}\nif (aktuell == 'T2')\n{\n global.set('AnzeigeTemp','T3');\n}\nif (aktuell == 'T3')\n{\n global.set('AnzeigeTemp','T4');\n}\nif (aktuell == 'T4')\n{\n global.set('AnzeigeTemp','T1');\n}\nreturn msg;","outputs":1,"noerr":0,"x":440,"y":140,"wires":[[]]},{"id":"822c44d8.cb2768","type":"debug","z":"b63bfe40.86e8f8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":690,"y":240,"wires":[]},{"id":"59fa5d98.9efdc4","type":"i2c scan","z":"b63bfe40.86e8f8","x":400,"y":240,"wires":[["822c44d8.cb2768"],[]]}]
[{"id":"83fd99bb.77784","type":"i2c_LCD_Output","z":"b63bfe40.86e8f8","name":"LCD-Ansteuerung","manufacturer":"Sainsmart","Line1":"Line1","Line2":"Line2","settings":"Basic","basic_screen_color":"ON","timeLimit":3,"timeLimitType":"minutes","i2c_device_number":1,"i2c_address":"0x27","advanced_clear":"clear","advanced_close":"close","advanced_color":"color","advanced_char0":"char0","advanced_char1":"char1","advanced_char2":"char2","advanced_char3":"char3","advanced_char4":"char4","advanced_char5":"char5","advanced_char6":"char6","advanced_char7":"char7","x":730,"y":140,"wires":},{"id":"859aa464.dad6d","type":"inject","z":"b63bfe40.86e8f8","name":"Every_10_Seconds","topic":"","payload":"","payloadType":"date","repeat":"10","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":140,"wires":[["3d7200d6.b7ef3","59fa5d98.9efdc4"]]},{"id":"3d7200d6.b7ef3","type":"function","z":"b63bfe40.86e8f8","name":"LCD-Anzeige-Umschalten","func":"var aktuell = global.get('AnzeigeTemp');\nif (aktuell == 'T1')\n{\n msg.Line1 = 'T1 Pooltemperatur:'\n msg.Line2 = global.get('T1') + ' °C';\n}\nif (aktuell == 'T2')\n{\n msg.Line1 = 'T2 Rücklauf Pool:';\n msg.Line2 = global.get('T2') + ' °C';\n}\nif (aktuell == 'T3')\n{\n msg.Line1 = 'T3 Solarabsorber:';\n msg.Line2 = global.get('T3') + ' °C';\n}\nif (aktuell == 'T4')\n{\n msg.Line1 = 'T4 Außentemperatur:';\n msg.Line2 = global.get('T4') + ' °C';\n}\n//aktuell auf den neuen Stand bringen\nif (aktuell == 'T1')\n{\n global.set('AnzeigeTemp','T2');\n}\nif (aktuell == 'T2')\n{\n global.set('AnzeigeTemp','T3');\n}\nif (aktuell == 'T3')\n{\n global.set('AnzeigeTemp','T4');\n}\nif (aktuell == 'T4')\n{\n global.set('AnzeigeTemp','T1');\n}\nreturn msg;","outputs":1,"noerr":0,"x":440,"y":140,"wires":[]},{"id":"822c44d8.cb2768","type":"debug","z":"b63bfe40.86e8f8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":690,"y":240,"wires":},{"id":"59fa5d98.9efdc4","type":"i2c scan","z":"b63bfe40.86e8f8","x":400,"y":240,"wires":[["822c44d8.cb2768"],]}]
To do this I'm using this node node-red-contrib-i2c-lcd-adafruit-sainsmart V0.7.30.
But I aways get an error:
Blockquote
TypeError: "callback" argument must be a function
I also tried this link:
https://infusionsystems.com/pishield/sending-data-to-1602-lcd-with-node-red/
But i failed, because I can't install the needed node.
I would be very thankfull for help.