How can I write a rule for the following Serial input from arduino

I am taking serial input from my arduino uno.
Serial String is as follows

{“device_no”:“WKSP-01”,“client”:“Workshop”,“device_type”:“SAM”,“device_key”:“LUJPIOJV7L5NHCWQ1F4J”,“node_no”:“024”,“Name”:"*Soham",“TEMP”:“32.26”,“HUM”:“0.00”,“LDR”:“127750.13”,“POWER”:“OFF”,“DOOR”:“CLOSE”,“PIR”:“NO”}

I want this String to be parsed for the given items.

Items Code is as follows:



String Device_num "Device Number [%s] " <app> (gArduino) { serial = "<COM1>@<9600>" }

String Client_name "Client Name [%s] " <app> (gArduino) { serial = "<COM1>@<9600>" }

String Device_type "Device Type  [%s] " <app> (gArduino) { serial = "<COM1>@<9600>" }

String Device_Key  "Device Key [%s] " <app> (gArduino) { serial = "<COM1>@<9600>" }

String Node_Num  "Node Number [%s] " <app> (gArduino) { serial = "<COM1>@<9600>" }

String Name  "Name [%s] " <app> (gArduino) { serial = "<COM1>@<9600>" }

String Sensor_Temperature "Temperature [%s]" <temperature> (gArduino) { serial = "<COM1>@<9600>" }

String Sensor_Humidity "Humidity [%s]" <cistern>  (gArduino) { serial = "<COM1>@<9600>" }

String Sensor_LDR "LDR [%s]" <switch> (gArduino) { serial = "<COM1>@<9600>" }

String Sensor_Power "Power [%s]" <switch> (gArduino) { serial = "<COM1>@<9600>" }

String Sensor_Door "Door [%s]" <temperature> (gArduino) { serial = "<COM1>@<9600>" }

String Sensor_Proximity "Proximity [%s]" <climate> (gArduino) { serial = "<COM1>@<9600>" }

I am expecting output as
Device Number = WKSP-01(exclude equa lto sign)
Client Name = Workshop(exclude equa lto sign)
.
.
.
My rule is as follows (which is not working)

rule "gArduino"  
 when   
      Item gArduino received update  
 then  
      var String ArduinoUpdate = gArduino.state.toString.trim  
  
      /*------------------------------------------------------------------*/
      
      
      /*String to be parsed
{"device_no":"WKSP-01","client":"Workshop","device_type":"SAM","device_key":"LUJPIOJV7L5NHCWQ1F4J","node_no":"024","Name":"*YadwadRajesh","TEMP":"32.26","HUM":"0.00","LDR":"127750.13","POWER":"OFF","DOOR":"CLOSE","PIR":"NO"}
         */
      
      
      
      
      var int device_noStartsOn = ArduinoUpdate.indexOf("device_no") + "device_no".length+1
      var String device = ArduinoUpdate.mid(device_noStartsOn,ArduinoUpdate.indexOf(',')-device_noStartsOn)
      Device_num.postUpdate(device)	
      
      var int client_nameStartsOn = ArduinoUpdate.indexOf("client") + "client".length+1
      var String cl = ArduinoUpdate.mid(client_nameStartsOn,ArduinoUpdate.indexOf(',')-client_nameStartsOn)
      Client_name.postUpdate(cl)
      
      var int device_typeStartsOn = ArduinoUpdate.indexOf("device_type") + "device_type".length+1
      var String deviceType = ArduinoUpdate.mid(device_typeStartsOn,ArduinoUpdate.indexOf(',')-device_typeStartsOn)
      Device_type.postUpdate(deviceType)
      
      var int device_kStartsOn = ArduinoUpdate.indexOf("device_key") + "device_key".length+1
      var String deviceKey = ArduinoUpdate.mid(device_kStartsOn,ArduinoUpdate.indexOf(',')-device_kStartsOn)
      Device_Key.postUpdate(deviceKey)
      
       var int node_noStartsOn = ArduinoUpdate.indexOf("node_no") + "node_no".length+1
      var String nodeno = ArduinoUpdate.mid(node_noStartsOn,ArduinoUpdate.indexOf(',')-node_noStartsOn)
      Node_Num.postUpdate(nodeno)
      
      var int NameStartsOn = ArduinoUpdate.indexOf("Name") + "Name".length+1
      var String name = ArduinoUpdate.mid(NameStartsOn,ArduinoUpdate.indexOf(',')-NameStartsOn)
      Name.postUpdate(name)
      
      var int TempStartsOn = ArduinoUpdate.indexOf("TEMP") + "TEMP".length+1
      var String temp = ArduinoUpdate.mid(TempStartsOn,ArduinoUpdate.indexOf(',')-TempStartsOn)
      Sensor_Temperature.postUpdate(temp)
      
      var int humiditytStartsOn = ArduinoUpdate.indexOf("HUM") + "HUM".length+1  
      var String humidity = ArduinoUpdate.mid(humiditytStartsOn, ArduinoUpdate.indexOf(',')-humiditytStartsOn)  
  	  Sensor_Humidity.postUpdate(humidity) 
      
      var int LDRStartsOn = ArduinoUpdate.indexOf("LDR") + "LDR".length+1
      var String LDR = ArduinoUpdate.mid(LDRStartsOn, ArduinoUpdate.indexOf(',')-LDRStartsOn)  
  	  Sensor_LDR.postUpdate(LDR)
  	  
  	  var int powerStartsOn = ArduinoUpdate.indexOf("POWER") + "POWER".length+1  
      var String power = ArduinoUpdate.mid(powerStartsOn, ArduinoUpdate.indexOf(',')-powerStartsOn)  
  	  Sensor_Power.postUpdate(power) 
  	  
  	  var int doorStartsOn = ArduinoUpdate.indexOf("DOOR") + "DOOR".length+1  
      var String door = ArduinoUpdate.mid(doorStartsOn, ArduinoUpdate.indexOf(',')-doorStartsOn)  
  	  Sensor_Door.postUpdate(door) 
  	  
  	  var int PirStartsOn = ArduinoUpdate.indexOf("PIR") + "PIR".length +1 
      var String pir = ArduinoUpdate.mid(PirStartsOn, ArduinoUpdate.indexOf(',')-PirStartsOn)  
  	  Sensor_Proximity.postUpdate(pir) 
  	  
 end 

PLEASE SUGGEST EDITS IN THE FOLLOWING RULE!
THANK YOU