Виртуальное устройство самопроизвольно меняет значение


#1

В какой-то момент один из параметров виртуального устройства (type : “range”, forceDefault : true,
value : 1, max : 3), стал сам по себе устанавливаться в новое значение - 2. Это происходит после перезагрузки или после сохранения скрипта. Причем сначала он устанавливается в инициализирующее значение 1, а потом в 2.
Я закоментировал все скрипты и отключил связь чтобы никто не писал в топики, но это не помогло. Глюк пропал после команды mqtt-delete-retained ‘/devices/VirtualDevice/#’
Хотелось бы понять что это было, и как подобного избежать.


#2

freemanon, добрый день!
Возможно, это баг в движке.
Покажите ваш скрипт, пожалуйста. Какая версия движка установлена?


#3

Version: 1.7.1
Скрипт довольно большой чтобы его сюда копировать и ничто в скрипте не писало в это виртуальное устройство, тем более я закоментировал все правила.
Значения параметрам виртуального устройства задавала MasterSCADA, через серверный MQTT-брокер и далее через MQTT-bridge контроллера. Возможно в MQTT-bridge есть какой-то кэш, который не корректно очистился или другой механизм где значение зависло.


#4

Я подозреваю, что это retained-сообщение, которое приходит после запуска движка правил и подключения его к MQTT. Можете хотя бы показать, как вы создаете виртуальное устройство?


#5
defineVirtualDevice("ASUNO", {
    title: "Обмен данными со SCADA",
  	cells: {   
        Mode1 : {
            type : "range",
            forceDefault : true,
            value : 1,
            max : 3,
           // readonly : true,
        },
        Mode2 : {
            type : "range",
            forceDefault : true,
            value : 1,
            max : 3,
          //  readonly : true,
        },
        Mode3 : {
            type : "range",
            forceDefault : true,
            value : 1,
            max : 3,
         //   readonly : true,
        },
      
      	StateLine1 : {
            type : "switch",
          	//value : dev["wb-gpio/EXT1_IN2"],
          	value : false,
            readonly : true,
        },
        StateLine2 : {
            type : "switch",
          	//value : dev["wb-gpio/EXT1_IN3"],
            value : false,         
            readonly : true,
        },
        StateLine3 : {
            type : "switch",
            value : false,
          	//value : dev["wb-gpio/EXT1_IN4"],
            readonly : true,
        },     
      
      	Door : {
            type : "switch",
           // forceDefault : false,
          	//value : dev["wb-gpio/EXT1_IN1"],
          	value : false,
            readonly : true,      
        }, 
      
       	Energy : {
            type : "power_consumption",
            value : 0.0,       //dev["mercury230ar02_30/Total consumption"];  
            readonly : true,
        },     
       	U1 : {
            type : "voltage",
            value : 0.0,
            readonly : true,
        },          
       	U2 : {
            type : "voltage",
            value : 0.0,
            readonly : true,
        },   
       	U3 : {
            type : "voltage",
            value : 0.0,
            readonly : true,
        },   

        I1 : {
            type : "value",
            value : 0.0,
            readonly : true,
        },  
        I2 : {
            type : "value",
            value : 0.0,
            readonly : true,
        },  
        I3 : {
            type : "value",
            value : 0.0,
            readonly : true,
        },  
        Power : {
            type : "power",
            value : 0.0,
            readonly : true,
        },        
      
    }
});

как-то странно сохраняет


#6

Спасибо, попробую воспроизвести на стенде, напишу по результатам.