The switch turns the load on and off properly via exec. The issue is when I manually turn on the load on the physical device not in node red, the button doesn't reflect that the load is on, currently it will show load if off.
Is there a way to have a function check the load state and then change the button accordingly? I am very new to this and been looking in the forums for similar flows and this is what I've attempted.
[{"id":"a8e10bfc.d978b8","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"13ea8c04.5f08d4","type":"mysql","z":"a8e10bfc.d978b8","mydb":"b1efcb9b.8e44a8","name":"Solardata","x":440,"y":280,"wires":[["8b08beb1.56953"]]},{"id":"266e386f.9bacd8","type":"inject","z":"a8e10bfc.d978b8","name":"","topic":"SELECT `PV array voltage`, `PV array current`, `PV array power`, `Battery voltage`, `Battery charging current`, `Battery charging power`, `Load voltage`, `Load current`, `Load power`, `Battery temperature`, `Charger temperature`, `Heat sink temperature`, `Battery SOC`, `Remote battery temperature`, `System rated voltage`, `Battery status`, `Equipment status` FROM `stats` ORDER BY `timestamp` DESC LIMIT 1 ","payload":"","payloadType":"str","repeat":"10","crontab":"","once":false,"onceDelay":"1","x":250,"y":280,"wires":[["13ea8c04.5f08d4"]]},{"id":"8b08beb1.56953","type":"function","z":"a8e10bfc.d978b8","name":"parse data","func":"var pvvoltage = msg.payload[0]['PV array voltage'];\nvar pvcurrent = msg.payload[0]['PV array current'];\nvar pvpower = msg.payload[0]['PV array power'];\nvar voltage = msg.payload[0]['Battery voltage'];\nvar battcurrent = msg.payload[0]['Battery charging current'];\nvar battpower = msg.payload[0]['Battery charging power'];\nvar battsoc = msg.payload[0]['Battery SOC'];\nvar loadvoltage = msg.payload[0]['Load voltage'];\nvar loadcurrent = msg.payload[0]['Load current'];\nvar loadpower = msg.payload[0]['Load power'];\nvar systemvoltage = msg.payload[0]['System rated voltage'];\nvar chargertemp = msg.payload[0]['Charger temperature'];\nvar batterytemp = msg.payload[0]['Battery temperature'];\nvar BattStatus = msg.payload[0]['Battery status'];\nvar chargerStatus = msg.payload[0]['Equipment status'];\n\nif ((msg.payload.indexOf('Database') === -1) && msg.topic.indexOf('Database') === -1){\n\n\nvar msg1 = {topic:\"PV array voltage\", payload: pvvoltage};\nvar msg2 = {topic:\"PV array current\", payload: pvcurrent};\nvar msg3 = {topic:\"PV array power\", payload: pvpower};\nvar msg4 = {topic:\"Battery voltage\", payload: voltage};\nvar msg5 = {topic:\"Battery charging current\", payload: battcurrent};\nvar msg6 = {topic:\"Battery charging power\", payload: battpower};\nvar msg7 = {topic:\"Battery SOC\", payload: battsoc};\nvar msg8 = {topic:\"[`Load voltage`]\", payload: loadvoltage};\nvar msg9 = {topic:\"[`Load current`]\", payload: loadcurrent};\nvar msg10 = {topic:\"[`Load power`]\", payload: loadpower};\nvar msg11 = {topic:\"[`System rated voltage`]\", payload: systemvoltage};\nvar msg12 = {topic:\"[`Charger temperature`]\", payload: chargertemp};\nvar msg13 = {topic:\"[`Battery temperature`]\", payload: batterytemp};\nvar msg14 = {topic:\"[`Battery status`]\", payload: BattStatus};\nvar msg15 = {topic:\"[`Equipment status`]\", payload: chargerStatus};\n\n\nreturn [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9,msg10,msg11,msg12,msg13,msg14,[msg15]];\n\n} else {\nreturn;\n}\n","outputs":15,"noerr":0,"x":650,"y":320,"wires":[[],[],[],[],[],[],[],[],["cd867452.b3b508"],[],[],[],[],[],[]]},{"id":"297fbabb.bebba6","type":"ui_text","z":"a8e10bfc.d978b8","group":"45d13185.8fc46","order":0,"width":0,"height":0,"name":"","label":"text","format":"<font color= {{msg.colour}}> {{msg.label}} </font> <i class=\"{{msg.icon}}\"></i>","layout":"row-spread","x":430,"y":540,"wires":[]},{"id":"cd867452.b3b508","type":"function","z":"a8e10bfc.d978b8","name":"Load Status","func":"var loadcurrent = +msg.payload\nif(loadcurrent == 0){\n msg.label = \"Load Off\";\n msg.payload = \"0\"\n msg.topic = \"state\"\n msg.colour = \"#00\";\n msg.background = \"green\";\n msg.icon = \"fa fa-lightbulb-o fa-2x nr-dashboard-ok\"\n return msg;\n}\n\n\nelse{\n msg.label = \"Load On\";\n msg.payload = \"1\"\n msg.topic = \"state\"\n msg.colour = \"#f44242\";\n msg.background = \"red\";\n msg.icon = \"fa fa-lightbulb-o fa-2x nr-dashboard-warning\"\n return msg;\n}\nreturn msg;","outputs":1,"noerr":0,"x":250,"y":540,"wires":[["297fbabb.bebba6","774adb23.c4e7d4"]]},{"id":"e8e3006e.9940d","type":"ui_switch","z":"a8e10bfc.d978b8","name":"","label":"Load on/off","group":"b9d11553.55a72","order":8,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"state","style":"","onvalue":"1","onvalueType":"num","onicon":"","oncolor":"","offvalue":"0","offvalueType":"num","officon":"","offcolor":"","x":270,"y":660,"wires":[["300bea42.a866c6","952780b5.3cf0c"]]},{"id":"55650783.e48948","type":"inject","z":"a8e10bfc.d978b8","name":"from temp control on","topic":"state","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":220,"y":721.2500019073486,"wires":[[]]},{"id":"5a0f53e9.b50a7c","type":"inject","z":"a8e10bfc.d978b8","name":"from temp control off","topic":"state","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":226.25,"y":765.0000019073486,"wires":[[]]},{"id":"774adb23.c4e7d4","type":"switch","z":"a8e10bfc.d978b8","name":"","property":"override","propertyType":"global","rules":[{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":410,"y":740,"wires":[["300bea42.a866c6"]]},{"id":"6f3fbd6c.b14c34","type":"change","z":"a8e10bfc.d978b8","name":"global override","rules":[{"t":"set","p":"override","pt":"global","to":"on","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":705.0000076293945,"y":622.5,"wires":[["75c099b1.0484e8"]]},{"id":"952780b5.3cf0c","type":"switch","z":"a8e10bfc.d978b8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":522.5000076293945,"y":643.75,"wires":[["6f3fbd6c.b14c34"],["a46ce4f6.1a46f8"]]},{"id":"a46ce4f6.1a46f8","type":"change","z":"a8e10bfc.d978b8","name":"global override","rules":[{"t":"set","p":"override","pt":"global","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":707.5,"y":662.4999866485596,"wires":[["1a12528f.57d7fd"]]},{"id":"300bea42.a866c6","type":"smartswitch","z":"a8e10bfc.d978b8","name":"switch","topic":"main","timeout":"0","x":590,"y":560,"wires":[[]]},{"id":"75c099b1.0484e8","type":"exec","z":"a8e10bfc.d978b8","command":"sudo ./loadon.sh","addpay":true,"append":"","useSpawn":"false","timer":"5","oldrc":false,"name":"Turn Load On","x":1072.5000076293945,"y":585.0000019073486,"wires":[[],[],[]]},{"id":"1a12528f.57d7fd","type":"exec","z":"a8e10bfc.d978b8","command":"sudo ./loadoff.sh","addpay":false,"append":"","useSpawn":"false","timer":"5","oldrc":false,"name":"Turn Load Off","x":1072.5000076293945,"y":665.0000019073486,"wires":[[],[],[]],"outputLabels":["Normal","",""]},{"id":"b1efcb9b.8e44a8","type":"MySQLdatabase","z":"","host":"127.0.0.1","port":"3306","db":"solardata","tz":""},{"id":"45d13185.8fc46","type":"ui_group","z":"","name":"Dashboard","tab":"c569e95d.e2ea7","order":1,"disp":true,"width":"20","collapse":true},{"id":"b9d11553.55a72","type":"ui_group","z":"","name":"Status","tab":"c569e95d.e2ea7","order":2,"disp":true,"width":"8","collapse":true},{"id":"c569e95d.e2ea7","type":"ui_tab","z":"","name":"Home","icon":"dashboard","order":1}]