Добрый день.
Я вроде бы настроил обработчик, но “висит” сообщение: “SyntaxError: Unexpected token u in JSON at position 0”. Данные о температурах получаю с устройства ESP-12, на котором стоит прошивка от Tasmota.
Код применил вот такой:
function process(payload) {
var obj = JSON.parse(payload);
var jrpa = (obj[“DS18B20-1”]);
var jrpas = (obj[“DS18B20-2”]);
var abv = JSON.parse(JSON.stringify(jrpa, null, 2));
var abvg = JSON.parse(JSON.stringify(jrpas, null, 2));
var tyu = (abv[“Temperature”]);
var tyz = (abvg[“Temperature”]);
return {tyu, tyz};
}
графики вижу только на странице объектах, не могу настроить график на дашборде.
Буду признателен за исчерпывающий ответ… .
Параметр “DS18B20-1” присутсвует не в каждом payload от устройства, поэтому для тех пакетов
где его нет возникает эта ошибка.
Помимо этого операция JSON.parse(JSON.stringify(jrpa, null, 2))
большой пользы не имеет, вы просто получаете копию имеющегося объекта.
Проверку на наличие нужного вам параметра можно выполнить следующим образом:
export function process(payload) {
if (!payload) {
return {};
}
var obj = JSON.parse(payload);
var tyu;
if (obj["DS18B20-1"]) {
tyu = obj["DS18B20-1"]["Temperature"];
}
var tyz;
if (obj["DS18B20-2"]) {
tyz = obj["DS18B20-2"]["Temperature"];
}
return { tyu, tyz };
}
Чтобы настроить график в дашборде - нужно на форме редактирования виджета нажать “Добавить новый источник данных” и выбрать нужный вам объект и параметр:
1 лайк
Ух ты…, не ожидал, очень квалифицированная помощь, огромное Вам спасибо.
Сначала попробовал, все “завелось”, теперь буду вникать
Да, действительно, от Tasmota приходит пакет в котором нет DS18B20-1, DS18B20-2,
это я в консоли “тасмоты” увидел, но не придал этому значения и это привело к ошибке… .
Еще раз спасибо.