var String myString = "Tonte:212 Chg:111 Att:110 Rech:11 Panne:0 min"
var String1 = myString.split(" ").get(0) // "Tonte:212"
var TonteValue = Float::parseFloat(String1.split(":").get(1)) as Number //212
I though of that, but regex is obscure enough without having to introduce a transformation on to of that.
I wanted to show the programmatic way of doing it.
rule "Format Automower Stats"
when
//Item Automower_G2_Stats_Now received update
Time cron "0/30 * * * * ?"
then
var String myString = Automower_G2_Stats_Now.state
var String1 = myString.split(" “).get(0) // “Tonte:212”
var TonteValue = Float::parseFloat(String1.split(”:").get(1)) as Number
logInfo(filename, "TonteValue: " + TonteValue.state )
Automower_G2_Stats_Mow.postUpdate(TonteValue)
var String2 = myString.split(" ").get(1) // "Chg:111"
var ChgValue = Float::parseFloat(String2.split(":").get(1)) as Number
logInfo(filename, "ChgValue: " + ChgValue.state )
Automower_G2_Stats_Charge.postUpdate(ChgValue)
var String3 = myString.split(" ").get(2) // "Att:110"
var AttValue = Float::parseFloat(String3.split(":").get(1)) as Number
logInfo(filename, "AttValue: " + AttValue.state )
Automower_G2_Stats_Wait.postUpdate(AttValue)
var String4 = myString.split(" ").get(3) // "Rech:11"
var RechValue = Float::parseFloat(String4.split(":").get(1)) as Number
logInfo(filename, "RechValue: " + RechValue.state )
Automower_G2_Stats_Search.postUpdate(RechValue)
var String5 = myString.split(" ").get(4) // "Panne:0"
var PanneValue = Float::parseFloat(String5.split(":").get(1)) as Number
logInfo(filename, "PanneValue: " + PanneValue.state )
Automower_G2_Stats_Error.postUpdate(PanneValue)
end
This is the error message:
[ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule ‘Format Automower Stats’: An error occurred during the script execution: Could not invoke method: java.lang.String.split(java.lang.String) on instance: Tonte:0 Chg:0 Att:1148 Rech:0 Panne:0 min