Пишу такой код, но он пишет
Ошибка правила: Error: Device with given ID already exists
/sbuild-nonexistent/go/pkg/mod/github.com/wirenboard/go-duktape@v0.0.0-20210723134114-881337fff8cb/api.go:124
anon native strict preventsyield
anon /etc/wb-rules/9_button.js:9 preventsyield
//11_22_test_01.js
var dashName = "system";
var ctrlName = "cDate";
//Тут проверим есть ли уже контрол и если нет - создадим.
if (!getDevice(dashName).isControlExists(ctrlName)) {
getDevice(dashName).addControl(ctrlName, {
type: "text",
value: "",
readonly: true
});
}
//Тут сделаем таймер, котрый будет обновлять контрл
setInterval(function(){
dev[dashName][ctrlName] = (new Date()).toString();
log.info("timer fired", (new Date()).toString());
}, 1000);
Ключевое: не пересоздавать устройство а добавить уже существующему. То есть если объект создан - надо с ним работать как с объектом.
var dashName = "1-etag";
var ctrlName = "Button_l";
//Тут проверим есть ли уже контрол и если нет - создадим.
if (!getDevice(dashName).isControlExists(ctrlName)) {
getDevice(dashName).addControl(ctrlName, {
cells: {
enabled: {
type: "switch",
value: false
}
},
});
}
Кнопка не создается. Если вставить ваш пример то создается поле со временем
cDate 2023-01-10 21:38:08.557+05:00
Я понимаю, как раз отвечает за создание текста
type: "text",
value: "",
readonly: true
И для чего делать таймер , который будет обновлять контрл, я про вот эту часть }, 1000);? Или это из вашего кода просто данные?
С каим выводом? Это совершенно неинформативно, вот совсем не диагностика… Что происходит в топиках на момент создания? Что выводится? Что выводят диагностические сообщения, вы же их добавили?
А что за элемет хотите тут описать? Ну прочитайте документцию, пожалуйста.
А где эта документация находится? Кроме как Движок правил wb-rules — Wiren Board и примеры написания нескольких кодов я не нашел.
Скиньте ссылку где смотреть. А то методом тыка не очень интересно пытаться выяснить как работают внутренние функции.
Создать хочу кнопку, что управлять реле, данные которые выводятся выше конкретно переключать state_left.
отдельно у меня кнопка сделана в веб интерфейск(смотрите первое сообщение) и вкл и выключает, я хотел чтобы она находилась именно в одном поле(окне) с данными получаемыми от реле.
По ошибкам он пишет при создании кнопки Button_22, в журнале, что не тот type
ERROR: Error in creating control Button_22 on device button: button/Button_22: no control type
Какой тип должен быть у кнопки? Я считал что switch
По ошибкам он пишет при создании кнопки Button_22, в журнале, что не тот type
ERROR: Error in creating control Button_22 on device button: button/Button_22: no control type
Какой тип должен быть у кнопки? Я считал что switch
Вопрос.
Я тестово сделал эту кнопку. Но после того как переписал скрипт(изменил насзвание), то появилась новая кнопка, а старая не удалилась(старый скрипт удалил). Она получается сейчас прописана где то в системе и может работать? Если да то ее надо будет так же скриптом удалять?
Удалилось послед удаления устройства нажав иконки корзины и перезагрузив wirenboard
Но хочется понять. После того как отработал скрипт и создал кнопку для устройства.
Она на совсем остается в системе и скрипт больше не нужен или до перезагрузки(хотя я перезагружал WB)?(кроме случаев когда WB будет сброшен в заводские настройки) И с ней можно работать как и с физическими устройствами?