Are you accessing/saving your rules file over a Samba share? That could cause this error.
I have a similar rule that parses data, but I use grep for it. This approach should work even if the data format is inconsistent. Hopefully this doesn’t muddy things up worse for you!
rule "SBFspot"
when
Time cron "0/15 * * * * ?"
then
val String raw_output = executeCommandLine("/usr/local/bin/sbfspot.3/SBFspot -v -finq -nocsv -nosql",10000)
//logInfo("SBFspot", "raw_output=[{}]", raw_output)
val String V_EToday = executeCommandLine("/bin/sh@@-c@@grep \"EToday\" <<< \"" + raw_output + "\" | grep -oP '(\\d+\\.\\d+)(?!.*(?1))'",1000)
logInfo("SBFspot", "V_EToday=[{}]", V_EToday)
val String V_ETotal = executeCommandLine("/bin/sh@@-c@@grep \"ETotal\" <<< \"" + raw_output + "\" | grep -oP '(\\d+\\.\\d+)(?!.*(?1))'",1000)
logInfo("SBFspot", "V_ETotal=[{}]", V_ETotal)
val String V_EAct = executeCommandLine("/bin/sh@@-c@@grep \"Total Pac\" <<< \"" + raw_output + "\" | grep -oP '(\\d+\\.\\d+)(?!.*(?1))'",1000)
logInfo("SBFspot", "V_EAct=[{}]", V_EAct)
PV_EAct.postUpdate(V_EAct)
PV_ETotal.postUpdate(V_ETotal)
PV_EToday.postUpdate(V_EToday)
end