Здравствуйте.
Подскажите как решить данную задачу:
Итак:
1. Устройство публикует данные с сенсора в виде JSON:
{"status":"OK",
"temperature":{"value":30.336,"string":"30.34°С"},
"humidity":{"value":26.470,"string":"26.47%"},
"time":"24.03.2021 15:42:05",
"display":"30.34°С 26.47%"
}
Здесь нам важны два значения:
status и display
В нормальном режиме ("status":"OK") на плитке отображается значение из "display", то есть "30.34°С 26.47%" с заданным цветом, что есть хорошечно.
Но если статус поменялся например на TIMEOUT, нужно на плитку вывести ошибку вместо значения, поменять цвет на красный и заставить мигать.
Вопрос: как в onDisplay прочитать поле из JSON значения, отличного от того, что задано в параметрах плитки? Конкретно нужно вытащить из event.getLastPayload() значение "status"
То есть мне нужно что-то вроде этого:
if (event.getLastPayload()['status'] != 'OK') {
бла-бла-бла...
}
Разумеется, это не работает.
event.getLastPayload() выдает всю JSON-строку
event.text выдает пустое значение (в случае сбоя оно будет пустым)
Конечно, можно пихнуть в display статус, но и тогда не получается по нему отловить ошибку - статус "ОК" в этом случае отсутствует как класс, а ошибки могут быть разными (придется перечислять в условиях их все). Некрасиво как-то.