Отслеживание whenChange у многих устройств

GlobalVars (1).js (37,8 КБ)

Фрагменты использования из разных частей других файлов…

var GLOBAL = require("GlobalVars");
.......
defineRule({

	whenChanged: [GLOBAL.DIN.Index("LightInt1CH1"), GLOBAL.DIN.Index("LightInt2CH1"), GLOBAL.DIN.Index("LightInt3CH1")],
	then: function (newValue, devName, cellName) {

		GLOBAL.LIGHTS.OUT.Set("UpstairRooms1", GLOBAL.DIN.Get("LightInt1CH1"));

		GLOBAL.LIGHTS.OUT.Set("UpstairRooms2", GLOBAL.DIN.Get("LightInt2CH1"));

		GLOBAL.LIGHTS.OUT.Set("UpstairRooms3", GLOBAL.DIN.Get("LightInt3CH1"));

	}

});
var GLOBAL = require("GlobalVars");
............
	var RealInputPowerOn = ( // Определяем есть ли напряжение на вводе
				(GLOBAL.DIN.Get("POWER_INPUT_ON") && GLOBAL.DIN.Get("POWER_RN_ON")) ||		// QF2 (Ввод) + QF22 (Питание РН)
				(GLOBAL.DIN.Get("POWER_RN_ON") && GLOBAL.DIN.Get("POWER_QFD1_ON")) ||		// QF22 (Питание РН) + QFD1 (до инвертора)
				(GLOBAL.DIN.Get("POWER_INPUT_ON") && GLOBAL.DIN.Get("POWER_QFD1_ON")) ||	// QF2 (Ввод) + QFD1 (до инвертора)
				!1
				);

	var RealOutputPowerOn = (
				(GLOBAL.DIN.Get("POWER_QFD2_ON") && GLOBAL.DIN.Get("POWER_QFD3_ON")) ||
				(GLOBAL.DIN.Get("POWER_QFD2_ON") && GLOBAL.DIN.Get("POWER_QFD4_ON")) ||
				(GLOBAL.DIN.Get("POWER_QFD2_ON") && GLOBAL.DIN.Get("POWER_QFD5_ON")) ||
				(GLOBAL.DIN.Get("POWER_QFD3_ON") && GLOBAL.DIN.Get("POWER_QFD4_ON")) ||
				(GLOBAL.DIN.Get("POWER_QFD3_ON") && GLOBAL.DIN.Get("POWER_QFD5_ON")) ||
				(GLOBAL.DIN.Get("POWER_QFD4_ON") && GLOBAL.DIN.Get("POWER_QFD5_ON")) ||
				GLOBAL.AIN.Get("OutputUrms") > 40
				);

	if (dev["PowerControls/EmergencyOffPower"] || dev["PowerControls/AllDisable"])
		GLOBAL.FLAGS.Set("AllPowerOff", true);
	else
		GLOBAL.FLAGS.Set("AllPowerOff", false);
	if (TIMERS.Is10S) {

		// Контроль датчиков температуры

		GLOBAL.DS18B20.List().forEach(function(name){

			ALARMS.WorkOnceEchoAlarm(GLOBAL.DS18B20.Error(name), "DS18B20_" + name, 12);

		});

		// Контроль устройств

		GLOBAL.Devices.List().forEach(function(name){

			ALARMS.WorkOnceEchoAlarm(GLOBAL.Devices.Error(name), "Error " + name, 6);

		});

	}