Движок правил 2.0


#21

а в хранилище нельзя сохранять объекты, или я что-то не правильно делаю?

var stor = PersistentStorage(“my-storage”);

stor.obj = {“key”:“value”}

считывать значения получается, а вот записать новое нет.

stor.obj[“key”] = “newvalue”; - не работает.


#22

По идее, можно. Вот только на данный момент это работает только с переписыванием целых объектов, вроде:

var stor = new PersistentStorage("my-storage");
stor.obj = {key: "value"};

...

// перезапись значения
obj = stor.obj;
obj.key = "newvalue";
stor.obj = obj;

Но спасибо за наводку, попробуем добавить возможность менять отдельные элементы объектов.


#23

Сообщение перенесено в новую тему: Сохранить состояние выходов


#24

#25

Помогите ещё разобраться с хранилищами. Заявлялось что хранилища
это объекты, значения в которых будут сохраняться даже при потере питания контроллера.
Но у меня после перезагрузки ничего не сохраняется. Что я делаю не так?

создаю глобальное хранилище и добавляю туда объект. Потом в этот объект добавляю данные и перезагружаю устройство. Поле перезагрузки объект пустой. Хранилище создается в модуле.


#26

Можете привести код, в котором это не работает?


#27

В модуле создаю хранилище и объект в нем:

var stor = new PersistentStorage("my-storage", {global: true});
stor.obj = {};

В сценарии добавляю туда значение:

var m = require("module");
var stor = PersistentStorage("my-storage", {global: true});

stor.obj.key = value;

Перезагружаем устройство и пытаемся из сценария посмотреть, что в объекте:

log(JSON.stringify(stor.obj));

А там пусто.


#28

Проблема в том, что вы изменяете параметры объекта в хранилище. Это известная проблема и мы постараемся её решить. Об этом было написано прямо в сообщении выше:


#29

Ну, выше была проблема с изменением параметров. Не думал, что это и на сохранение распространяется. Если я перепишу весь объект, то должно сохранять?


#30

Так суть процесса одна и та же, вопрос именно за сохранение.

Должно заработать, проверьте.


#31

А вообще, сейчас проверил свой код, всё же ключи добавлялись пересохранением всего объекта. Так что, похоже, придётся возвращаться к кривому способу сохранения в файл через runShellCommand :frowning:

Не может быть проблемой, что хранилище в модуле объявлено? У Вас, вообще, при перезагрузке сохранялись значения?


#32

Странно, но вполне возможно. На то она и бета сейчас. Проверим в ближайшее время, выкатим исправленную версию.


#33

Проверим в ближайшее время, выкатим исправленную версию.

Есть какие нибудь результаты?


#34

Подскажите, релиз движка планируется или забили на него?


#35

Добрый день!
Меня тоже очень интересует этот вопрос.


#36

Всё ещё планируется. Под это дело пришлось много переписывать системные библиотеки, работа ещё идёт.


#37

А какой сейчас статус нового движка?

Я осенью его поставил. Вроде даже без особых нареканий.

А недавно стал зависать. Причем тестовый крон стабильно пишет раз в час тестовую запись в лог. А вот whenChanged перестает работать

Из интерфейса страница со скриптами также не открывается с ошибкой " Error listing the scripts: MQTT RPC request timed out"

Стоит “Version: 2.0~beta3”

Перезапуск wb-rules проблему решает…

Посоветуйте куда копать? Может я что-то сломал или обновил какой-то пакет?
Есть вариант понять что с wb-rules?


#38

Странно, но убрал все скрипты (закомментировал весь код в них) - все равно виснет.

Откатился на 1.6.8


#39

А чем версия 1.7 отличается от 2.0? судя по вики то ничем. Может она в скором времени выйдет?