Thank you for the pointers…
I have changed my rule to this:
rule "Fritzbox: call list 10"
when
Item fbox_CallList10 changed
//Item fbox_CallList10 received update
then
var String input_string = (fbox_CallList10.state as StringType).toString
logInfo(LOG_PREFIX + "02.01", "input_string........: {}", input_string)
input_string = input_string.replace('[', '')
input_string = input_string.replace(']', '')
val json_arr_length = Integer::parseInt(transform("JSONPATH", "$.length()", input_string))
var i = 0
logInfo(LOG_PREFIX + "02.02", "json_arr_length.....: {}", json_arr_length)
logInfo(LOG_PREFIX + "02.03", "i...................: {}", i)
val String FBOX_CALL_LIST = input_string
for (i = 0; i < json_arr_length; i++)
{
val String REMOTE_NUMBER = transform("JSONPATH", "$.[" + i + "].remoteNumber", FBOX_CALL_LIST)
val String CALL_TIMESTAMP = transform("JSONPATH", "$.[" + i + "].date", FBOX_CALL_LIST)
val String CALL_TYPE = transform("JSONPATH", "$.[" + i + "].type", FBOX_CALL_LIST)
logInfo(LOG_PREFIX + "02.04", "REMOTE_NUMBER......: {}", REMOTE_NUMBER)
logInfo(LOG_PREFIX + "02.05", "CALL_TIMESTAMP.....: {}", CALL_TIMESTAMP)
var String call_type = ""
switch (CALL_TYPE)
{
case "1":
{
call_type = "incoming"
}
case "2":
{
call_type = "missed"
}
case "3":
{
call_type = "rejected"
}
case "4":
{
call_type = "outgoing"
}
}
logInfo(LOG_PREFIX + "02.06", "CALL_TYPE..........: {} = {}", CALL_TYPE, call_type)
}
end
Which somehow does not produce the desired result. It seems like it does dissect the string into elements, but rather lists the whole array.
2022-12-14 07:44:08.287 [INFO ] [hab.core.model.script.Fritzbox.02.02] - json_arr_length.....: 5
2022-12-14 07:44:08.289 [INFO ] [hab.core.model.script.Fritzbox.02.03] - i...................: 0
2022-12-14 07:44:08.296 [INFO ] [hab.core.model.script.Fritzbox.02.04] - REMOTE_NUMBER......: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.297 [INFO ] [hab.core.model.script.Fritzbox.02.05] - CALL_TIMESTAMP.....: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.299 [INFO ] [hab.core.model.script.Fritzbox.02.06] - CALL_TYPE..........: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1} =
2022-12-14 07:44:08.303 [INFO ] [hab.core.model.script.Fritzbox.02.04] - REMOTE_NUMBER......: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.305 [INFO ] [hab.core.model.script.Fritzbox.02.05] - CALL_TIMESTAMP.....: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.306 [INFO ] [hab.core.model.script.Fritzbox.02.06] - CALL_TYPE..........: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1} =
2022-12-14 07:44:08.311 [INFO ] [hab.core.model.script.Fritzbox.02.04] - REMOTE_NUMBER......: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.313 [INFO ] [hab.core.model.script.Fritzbox.02.05] - CALL_TIMESTAMP.....: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.314 [INFO ] [hab.core.model.script.Fritzbox.02.06] - CALL_TYPE..........: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1} =
2022-12-14 07:44:08.319 [INFO ] [hab.core.model.script.Fritzbox.02.04] - REMOTE_NUMBER......: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.320 [INFO ] [hab.core.model.script.Fritzbox.02.05] - CALL_TIMESTAMP.....: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.321 [INFO ] [hab.core.model.script.Fritzbox.02.06] - CALL_TYPE..........: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1} =
2022-12-14 07:44:08.327 [INFO ] [hab.core.model.script.Fritzbox.02.04] - REMOTE_NUMBER......: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.328 [INFO ] [hab.core.model.script.Fritzbox.02.05] - CALL_TIMESTAMP.....: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1}
2022-12-14 07:44:08.329 [INFO ] [hab.core.model.script.Fritzbox.02.06] - CALL_TYPE..........: {"localNumber":"07520416505","remoteNumber":"0280008663","date":"2022-12-13T18:11:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"6444131014","date":"2022-12-08T15:42:00+10","type":2,"duration":0},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:58:00+10","type":1,"duration":1},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T09:02:00+10","type":3,"duration":8},{"localNumber":"07520416505","remoteNumber":"0754241239","date":"2022-12-05T08:50:00+10","type":3,"duration":1} =
I have tried the following variation:
- did not remove the [] form the input_string
transform("JSONPATH", "$.[" + i + "].remoteNumber", FBOX_CALL_LIST)
transform("JSONPATH", "$.[i].remoteNumber", FBOX_CALL_LIST)
All three lead to the same result.
What am I missing?
[update]
Well, the [] have to stay AND the element has to be extracted like so: "$.[" + i + "].remoteNumber"
.
Solved! works.
Thank you!