Передача данных методом Post

Коллеги хочу передавать данные по температуре в гугл таблицу методом POST
Соответсвенно сделать команду через функцию fetch
WB-rules ругается что не знает такой функции

Как использовать метод Post в wb-rules?

Вот мой скрипт

var freezer1 = "Температура в горячем цеху " + dev [“hwmon/CPU Temperature”]

defineRule(“temperatuteInLog”, {
when: cron(“@every 0h1m”),
then: function () {
var str = “Температура отправлена” + freezer1
log (str)
log (typeof (str))
fetch (“https://sb-film.skillbox.cc/films”, {
method: “POST”,
headers: {
“Content-Type”: “text/html”,
},
body: freezer1
})
}
});

Выдается вот такая ошибка
Apr 04 16:54:36 wirenboard-A7X5EPKR wb-rules[31875]: ERROR: [rule error] ECMAScript error: ReferenceError: identifier ‘fetch’ undefined
duk_js_var.c:1232
anon /etc/wb-rules/temperatureInLog.js:32 preventsyield
call native strict preventsyield
anon /usr/share/wb-rules-system/scripts/lib.js:240 preventsyield

Добрый день.

В wb-rules используется стандарт ECMAScript 5, а функция fetch появилась только в 6 версии.

Вы можете отправить POST-запрос с помощью runShellCommand() и утилиты curl. Вот как пример, аналогичный вашему примеру с fetch :

curl -X POST -H "Content-Type: text/html" -d "freezer1" https://sb-film.skillbox.cc/films

, где:

  • -X POST указывает, что метод запроса должен быть POST.
  • -H "Content-Type: text/html" задает заголовок Content-Type, указывающий тип содержимого как text/html.
  • -d "freezer1" задает тело запроса, которое в вашем случае будет содержать строку "freezer1".
  • https://sb-film.skillbox.cc/films представляет адрес, куда будет отправлен запрос.
1 лайк

выдает ошибку

Команду необходимо указывать в качестве аргумента cmd функции runShellCommand. Вот здесь описано подробнее — https://github.com/wirenboard/wb-rules?tab=readme-ov-file#запуск-внешних-процессов-spawn

напишите ПЖЛ как будет выглядеть код целиком в этой команде, а то непонятно написано

Типичный пример выполнения внешних команд с анализом вывода можно посмотреть тут:

Пример анализа статуса выполнения можно посмотреть тут: Скрипт для пингования хоста

Так, а что именно непонятно? Что можно улучшить в описании?