Примеры скриптов

Если кому интересно, то можно задать вирт. устройство произвольно из скрипта.

Логика проста.
Задаем массив объектов, которые хотим передать в вирт. устройство. Например:

[
{source_dev:"T3HLS-1/Temperature", target_dev:"Temperature1",modify_mode:"Kelvins"},
{source_dev:"T3HLS-1/External_Sensor_1", target_dev:"Temperature2",modify_mode:"Kelvins"},
{source_dev:"T3HLS-1/External_Sensor_2", target_dev:"Temperature3",modify_mode:"Kelvins"},
{source_dev:"T3HLS-1/Humidity", target_dev:"Humidity",modify_mode:"Round(x)"},
{source_dev:"T3HLS-1/Illuminance", target_dev:"Illuminance",modify_mode:"Round(xHyst2)"},
{source_dev:"T3HLS-1/Sound_Level", target_dev:"Sound_Level",modify_mode:"Round(xHyst2)"},
{source_dev:"T3HLS-1/Input_Voltage", target_dev:"Input_Voltage",modify_mode:"Round(x)"}
]);

затем обрабатываем этот массив, вынимая нужные поля и расставляя их в новом объекте полей (cells)

for (var i=0; i<this.SETTINGS.length;i++){
				
		log("отрабатываем cell " + i);
				
		cells[this.SETTINGS[i].target_dev] = {
			type:"string",
			value:"NA"
		}
	};

Ключевой для меня была конструкция cells[this.SETTINGS[i].target_dev]. Размещение переменной в квадратных скобках дает возможность создать поле с именем этой переменной.

ну и венец всему:

defineVirtualDevice(obj_name,{
				title: obj_name,
				cells:cells 
	});
3 лайка