/*
В данном файле описаны глоьбальные переменные всех скриптов и методы доступа к ним
*/
var DefinedVersion = "1.4"; // При редактировании этих переменных необходимо менять версию, чтобы переопределять глобальные пемеремные
if (module.static.DATA === undefined || module.static.DATA.version != DefinedVersion) {
module.static.DATA = {
"version" : DefinedVersion, // Версия файла
"AllPowerOff" : false, // Полное отключение всех систем и питаний по аварии/пожару
"NoInputPower" : false, // Нет входного питания потребителей (без детализации причины)
"MainPowerOn" : false, // Включена сеть в доме (независимо от наличия питания на вводе)
"BSMainPowerOff" : false, // Флаг перехода на аварийное питание и обратно
"ONWaterPower" : false, // Включить питание ПЧ водоснабжения
"OFFWaterPower" : false, // Отключить питание ПЧ водоснабжения
"MainPowerOnRuleId" : 0, // Объект правила управления мастер-выключателем
"MainWaterRuleId" : 0, // Объект правила управления водоснабжения
"DINLastStates" : {}, // Состояния входов предыдущие (для логирования)
};
}
exports.CONFIG = readConfig("/etc/ControlPanelSystemConfig.conf");
// Описываем дискретные входы
var DINChannelsNames = {
// WB-DIO модуль 1 - 14 входов
"ButtonOff" : "wb-gpio/EXT5_IN1", // Кнопка "Отключение" //--
"ButtonReset" : "wb-gpio/EXT5_IN2", // Кнопка "Сброс" //--
"Rezerv1_3" : "wb-gpio/EXT5_IN3", //
"Rezerv1_4" : "wb-gpio/EXT5_IN4", //
"Power12VOK" : "wb-gpio/EXT5_IN5", // Питание 12 В в норме
"QFAKB48VOFF" : "wb-gpio/EXT5_IN6", // Автомат АКБ 48 В отключен
"QFPV120VOFF" : "wb-gpio/EXT5_IN7", // Автомат СБ 120 В отключен
"PowerGenOK" : "wb-gpio/EXT5_IN8", // Напряжение генератора в норме
"HeatingLight3" : "wb-gpio/EXT5_IN9", // Свет погреба 3
"Heating3" : "wb-gpio/EXT5_IN10", // Обогрев погреба 3
"Heating2" : "wb-gpio/EXT5_IN11", // Обогрев комнаты 2
"Heating1" : "wb-gpio/EXT5_IN12", // Обогрев кухни 1
"Rezerv1_13" : "wb-gpio/EXT5_IN13", //
"ButtonMain" : "wb-gpio/EXT5_IN14", // Мастер-выключатель
// WB-DIO модуль 2 - 14 входов
"ManualModeOn" : "wb-gpio/EXT6_IN1", // Ручное управление включено
"InvertorSignalOk" : "wb-gpio/EXT6_IN2", // Батарея инвертора не разряжена
"Rezerv2_3" : "wb-gpio/EXT6_IN3", //
"Rezerv2_4" : "wb-gpio/EXT6_IN4", //
"LightInt3CH1" : "wb-gpio/EXT6_IN5", // Свет 3 чердак Ч1
"LightInt2CH1" : "wb-gpio/EXT6_IN6", // Свет 2 чердак Ч1
"LightInt1CH1" : "wb-gpio/EXT6_IN7", // Свет 1 чердак Ч1
"SlivVody" : "wb-gpio/EXT6_IN8", // Слив воды
"MainWater" : "wb-gpio/EXT6_IN9", // Вода в доме
"Rezerv2_10" : "wb-gpio/EXT6_IN10", //
"MoveSensor1" : "wb-gpio/EXT6_IN11", // Датчик движения 1
"MoveSensor2" : "wb-gpio/EXT6_IN12", // Датчик движения 2
"MoveSensor3" : "wb-gpio/EXT6_IN13", // Датчик движения 3 //--
"QFVVInputPowerOn" : "wb-gpio/EXT6_IN14", // Вводной выключатель ЩВ включен
// WB-DIO модуль 3 - 14 входов
"POWER_INPUT_ON" : "wb-gpio/EXT7_IN1", // QF2 (Ввод)
"POWER_RN_ON" : "wb-gpio/EXT7_IN2", // QF22 (Питание РН)
"POWER_INPUT_RN_OK" : "wb-gpio/EXT7_IN3", // U в норме (сигнал с РН)
"POWER_QFD1_ON" : "wb-gpio/EXT7_IN4", // QFD1 (до инвертора)
"POWER_QFD2_ON" : "wb-gpio/EXT7_IN5", // QFD2 (после инвертора)
"POWER_QFD3_ON" : "wb-gpio/EXT7_IN6", // QFD3 (после инвертора)
"POWER_QFD4_ON" : "wb-gpio/EXT7_IN7", // QFD4 (после инвертора)
"POWER_QFD5_ON" : "wb-gpio/EXT7_IN8", // QFD5 (Питание автоматики)
"Power12VVideoSystemOK" : "wb-gpio/EXT7_IN9", // Питание ВН 12 В в норме
"Power24VOK" : "wb-gpio/EXT7_IN10", // Питание 24 В в норме
"AKB24VError" : "wb-gpio/EXT7_IN11", // Авария АКБ 24 В
"AKB24VDischarged" : "wb-gpio/EXT7_IN12", // Разряжена АКБ 24 В
"UZIP_OK" : "wb-gpio/EXT7_IN13", // УЗИП ввода исправен
"QFSCHVUInputPowerOn" : "wb-gpio/EXT7_IN14", // Автомат ввода ЩВУ QF2 включен
// WB-DIO модуль 4 - 14 входов
"Light13" : "wb-gpio/EXT8_IN1", // Освещение 3
"Light12" : "wb-gpio/EXT8_IN2", // Освещение 2
"Light46" : "wb-gpio/EXT8_IN3", // Освещение 4
"Light56" : "wb-gpio/EXT8_IN4", // Освещение 5
"Light11" : "wb-gpio/EXT8_IN5", // Освещение 11
"Light79" : "wb-gpio/EXT8_IN6", // Освещение 7
"Light810" : "wb-gpio/EXT8_IN7", // Освещение 8
"Rezerv4_8" : "wb-gpio/EXT8_IN8", //
"Rezerv4_9" : "wb-gpio/EXT8_IN9", //
"Rezerv4_10" : "wb-gpio/EXT8_IN10", //
"Rezerv4_11" : "wb-gpio/EXT8_IN11", //
"Rezerv4_12" : "wb-gpio/EXT8_IN12", //
"Rezerv4_13" : "wb-gpio/EXT8_IN13", //
"EmergencyFanON" : "wb-gpio/EXT8_IN14", // Аварийный вентилятор включен
// Модуль WB-MAO4 221
"MAO4_SCHVUUpDoorOpen" : "wb-mao4_221/Input 1", // Дверь верхняя ЩВУ открыта
"MAO4_SCHVUDownDoorOpen" : "wb-mao4_221/Input 2", // Дверь нижняя ЩВУ открыта
"MAO4_Input3" : "wb-mao4_221/Input 3", //
/* Модуль внешних входов - выходов */
// WB-DIO модуль 1 - 14 входов - B1.4 ЩВС
"WaterWorkButton" : "wb-mio-gpio_183:3/IN1", // Работа насоса (пульт в П1)
"WaterEmergencyNo" : "wb-mio-gpio_183:3/IN2", // Экстр. откл. (пульт в П1) - НЗ контакт
"WaterLeakageNo" : "wb-mio-gpio_183:3/IN3", // Протечка в П1 - НЗ контакт
"WaterOnKran" : "wb-mio-gpio_183:3/IN4", // Вода 'Кран'
"LightP1" : "wb-mio-gpio_183:3/IN5", // Освещение П1
"WaterOnSocket" : "wb-mio-gpio_183:3/IN6", // Нагрузка рез. П1
"WaterOnBak" : "wb-mio-gpio_183:3/IN7", // Заполнить бак
"WaterOnRuchBak" : "wb-mio-gpio_183:3/IN8", // Вода к баку
"Light810_1" : "wb-mio-gpio_183:3/IN9", // Освещение 8 (вторая кнопка)
"WaterOnPoliv" : "wb-mio-gpio_183:3/IN10", // Полив ручной
"WaterFlowControl" : "wb-mio-gpio_183:3/IN11", // Датчик протока
"WaterAutoPolivEnable" : "wb-mio-gpio_183:3/IN12", // Полив автомат
"WaterAutoPolivCmd" : "wb-mio-gpio_183:3/IN13", // Выполнить полив
"WaterCoverOpen" : "wb-mio-gpio_183:3/IN14", // Открыта крышка погреба
// WB-DIO модуль 2 - 14 входов - B1.5 ЩВС
"WaterOnRuchPoliv1" : "wb-mio-gpio_183:4/IN1", // Клапан п. 1
"WaterOnRuchPoliv2" : "wb-mio-gpio_183:4/IN2", // Клапан п. 2
"WaterOnRuchPoliv3" : "wb-mio-gpio_183:4/IN3", // Клапан п. 3
"WaterBakNePolon" : "wb-mio-gpio_183:4/IN4", // Бак ВУ
"WaterOnBanya" : "wb-mio-gpio_183:4/IN5", // Вода 'Баня'
"BanyaLight" : "wb-mio-gpio_183:4/IN6", // Свет в бане
"Ring" : "wb-mio-gpio_183:4/IN7", // Звонок
"RezervB1_5_I8" : "wb-mio-gpio_183:4/IN8", // Резерв B1_5_I8
"RezervB1_5_I9" : "wb-mio-gpio_183:4/IN9", // Резерв B1_5_I9
"RezervB1_5_I10" : "wb-mio-gpio_183:4/IN10", // Резерв B1_5_I10
"RezervB1_5_I11" : "wb-mio-gpio_183:4/IN11", // Резерв B1_5_I11
"WaterSCHVSPowerK1" : "wb-mio-gpio_183:4/IN12", // Наличие питания после K1
"WaterModeSwitch" : "wb-mio-gpio_183:4/IN13", // Режим работы в/с
"WaterButtonReset" : "wb-mio-gpio_183:4/IN14", // Кнопка "Сброс" неисправностей водоснабжения
};
// Описываем функции дискретных входов
exports.DIN = {
"Index" : function(name) {
return DINChannelsNames[name];
},
"Get" : function(name, nolog) {
var State = dev[exports.DIN.Index(name)] ? true : false;
if (!nolog) {
if (module.static.DATA.DINLastStates[name]) {
if (module.static.DATA.DINLastStates[name]["State"] != State)
log("Изменён вход DIN \"" + name + "\": " + State);
module.static.DATA.DINLastStates[name]["State"] = State;
} else module.static.DATA.DINLastStates[name] = {"State" : State};
}
return State;
},
};
// Описываем дискретные выходы
var DOUTChannelsNames = {
// WB-DIO модуль 1 - 8 выходов высоковольтных раздельных мех. реле
"InputPower" : "wb-gpio/EXT1_R3A1", // Контактор ввода (РН)
"SCHVULight" : "wb-gpio/EXT1_R3A2", // Освещение ЩВУ
"Battery48VOFF" : "wb-gpio/EXT1_R3A3", // Аварийное отключение АКБ 48 В
"PV120VOFF" : "wb-gpio/EXT1_R3A4", // Аварийное отключение СБ 120 В
"HeatingFan" : "wb-gpio/EXT1_R3A5", // Циркуляционный вентилятор обогрева
"WaterPower" : "wb-gpio/EXT1_R3A6", // Контактор ПЧ
"EmergencyFan" : "wb-gpio/EXT1_R3A7", // Аварийный вентилятор
"MainFan" : "wb-gpio/EXT1_R3A8", // Основной вентилятор
// WB-DIO модуль 2 - 16 выходов слаботочных мех. реле
"GenPower" : "wb-gpio/EXT2_K1", // Контактор генератора
"MainPower" : "wb-gpio/EXT2_K2", // Контактор сети дома
"BanyaPower" : "wb-gpio/EXT2_K3", // Контактор сети бани
"SystemPower" : "wb-gpio/EXT2_K4", // Переключатель питания автоматики
"Battery24VOff" : "wb-gpio/EXT2_K5", // Отключение АКБ 24 В
"Heating4" : "wb-gpio/EXT2_K6", // Уличный душ //--
"VentilControl1" : "wb-gpio/EXT2_K7", // Вентиляция 2 //--
"VentilControl2" : "wb-gpio/EXT2_K8", // Вентиляция 1 //--
"Rezerv2_9" : "wb-gpio/EXT2_K9", //
"Rezerv2_10" : "wb-gpio/EXT2_K10", //
"BatteryGen" : "wb-gpio/EXT2_K11", // Заряд АКБ ген. //--
"NeOtklDest" : "wb-gpio/EXT2_K12", // Не отключаемые потребители
"Heating1" : "wb-gpio/EXT2_K13", // Обогреватель 1
"Heating2" : "wb-gpio/EXT2_K14", // Обогреватель 2
"VideoSystem" : "wb-gpio/EXT2_K15", // Система видеонаблюдения
"EmergencyGas" : "wb-gpio/EXT2_K16", // Газовый клапан //--
// WB-DIO модуль 3 - 16 выходов слаботочных мех. реле
"HeatingInd1" : "wb-gpio/EXT3_K1", // Индикатор "Обогрев 1"
"HeatingInd2" : "wb-gpio/EXT3_K2", // Индикатор "Обогрев 2"
"Rezerv3_3" : "wb-gpio/EXT3_K3", //
"Rezerv3_4" : "wb-gpio/EXT3_K4", //
"Rezerv3_5" : "wb-gpio/EXT3_K5", //
"Rezerv3_6" : "wb-gpio/EXT3_K6", //
"Rezerv3_7" : "wb-gpio/EXT3_K7", //
"Rezerv3_8" : "wb-gpio/EXT3_K8", //
// WB-DIO модуль 4 - 8 выходов слаботочных оптронов
"SCHVUHeater1" : "wb-gpio/EXT4_K1", // Обогреватель 1 ЩВУ
"SCHVUHeater2" : "wb-gpio/EXT4_K2", // Обогреватель 2 ЩВУ
"Ring" : "wb-gpio/EXT4_K3", // Звонок
"ModeInd" : "wb-gpio/EXT4_K4", // Индикатор "Режим"
"LightInd" : "wb-gpio/EXT4_K5", // Индикатор "Подсветка пультов"
"Rezerv4_6" : "wb-gpio/EXT4_K6", //
"WorkInd" : "wb-gpio/EXT4_K7", // Индикатор "Работа"
"AlarmInd" : "wb-gpio/EXT4_K8", // Индикатор "Неисправность"
// Системные выходы
"5V_OUT" : "wb-gpio/5V_OUT", // Питание 5 В для датчиков
/* Модуль внешних входов - выходов */
// WB-DIO модуль 1 - 16 выходов слаботочных мех. реле - B1.2 ЩВС
"WaterClapanPoliva1" : "wb-mio-gpio_183:1/K1", // Клапан пол. 1
"WaterClapanPoliva2" : "wb-mio-gpio_183:1/K2", // Клапан пол. 2
"WaterClapanPoliva3" : "wb-mio-gpio_183:1/K3", // Клапан пол. 3
"WaterClapanNS1Kran" : "wb-mio-gpio_183:1/K4", // Клапан в/с 1 - Кран
"WaterClapanNS2Banya" : "wb-mio-gpio_183:1/K5", // Клапан в/с 2 - Баня
"WaterClapanNS3Bak" : "wb-mio-gpio_183:1/K6", // Клапан в/с 3 - Бак
"WaterClapanSliva" : "wb-mio-gpio_183:1/K7", // Клапан слива
"Rezerv_B1_2_K8" : "wb-mio-gpio_183:1/K8", // Резерв B1_2_K8
"WaterVentil1" : "wb-mio-gpio_183:1/K9", // Вентилятор с. 1
"WaterVentil2" : "wb-mio-gpio_183:1/K10", // Вентилятор с. 2
"Rezerv_B1_2_K11" : "wb-mio-gpio_183:1/K11", // Резерв B1_2_K11
"Rezerv_B1_2_K12" : "wb-mio-gpio_183:1/K12", // Резерв B1_2_K12
"Rezerv_B1_2_K13" : "wb-mio-gpio_183:1/K13", // Резерв B1_2_K13
"Rezerv_B1_2_K14" : "wb-mio-gpio_183:1/K14", // Резерв B1_2_K14
"WaterWorkNasos1" : "wb-mio-gpio_183:1/K15", // Индикатор насоса 1
"WaterWorkNasos2" : "wb-mio-gpio_183:1/K16", // Индикатор насоса 2
// WB-DIO модуль 2 - 8 выходов слаботочных оптронов - B1.3 ЩВС
"WaterSCHVSPowerK1" : "wb-mio-gpio_183:2/K1", // Сеть клапанов
"Rezerv_B1_3_K2" : "wb-mio-gpio_183:2/K2", // Резерв
"Heating5" : "wb-mio-gpio_183:2/K3", // Освещение П1
"WaterSocket" : "wb-mio-gpio_183:2/K4", // Нагрузка рез.
"WaterPDatPoliv" : "wb-mio-gpio_183:2/K5", // Пит. дат. полива
"WaterPDatMain" : "wb-mio-gpio_183:2/K6", // Пит. дат. в/с
"WaterWorkInd" : "wb-mio-gpio_183:2/K7", // Индикатор "Работа В/С"
"WaterAlarmInd" : "wb-mio-gpio_183:2/K8", // Индикатор "Неисправность В/С"
};
// Описываем функции дискретных выходов
exports.DOUT = {
"Index" : function(name) {
return DOUTChannelsNames[name];
},
"Get" : function(name) {
return dev[exports.DOUT.Index(name)] ? true : false;
},
"Set" : function(name, State, nolog) {
State = State ? true : false;
if (dev[exports.DOUT.Index(name)] == State) return;
dev[exports.DOUT.Index(name)] = State ? true : false;
if (!nolog) log("Установлен в " + (State ? "1" : "0") + " \"" + name + "\": " + exports.DOUT.Index(name));
return State;
},
"On" : function(name, nolog) {
if (dev[exports.DOUT.Index(name)] == true) return;
dev[exports.DOUT.Index(name)] = true;
if (!nolog) log("Включен \"" + name + "\": " + exports.DOUT.Index(name));
},
"Off" : function(name, nolog) {
if (dev[exports.DOUT.Index(name)] == false) return;
dev[exports.DOUT.Index(name)] = false;
if (!nolog) log("Отключен \"" + name + "\": " + exports.DOUT.Index(name));
},
"Toggle" : function(name, nolog) {
var State = dev[exports.DOUT.Index(name)] ? false : true;
dev[exports.DOUT.Index(name)] = State;
if (!nolog) log("Переключен \"" + name + "\" в " + (State ? "1" : "0") + ": " + exports.DOUT.Index(name));
return State;
}
};
// Описываем дискретные входы освещения
var LightINChannelsNames = {
// Модуль WB-MR6C 16
"ModLight1_Input0" : "wb-mr6c_16/Input 0",
"Room1_1" : "wb-mr6c_16/Input 1",
"Room1_2" : "wb-mr6c_16/Input 2",
"Room1_3" : "wb-mr6c_16/Input 3",
"Room1_4" : "wb-mr6c_16/Input 4",
"Room1_5" : "wb-mr6c_16/Input 5",
"Room1_6" : "wb-mr6c_16/Input 6",
// Модуль WB-MR6C 63
"ModLight2_Input0" : "wb-mr6c_63/Input 0",
"Kitchen1_1" : "wb-mr6c_63/Input 1",
"Kitchen1_2" : "wb-mr6c_63/Input 2",
"Kitchen1_3" : "wb-mr6c_63/Input 3",
"Kitchen1_4" : "wb-mr6c_63/Input 4",
"Room2_1" : "wb-mr6c_63/Input 5",
"Room2_2" : "wb-mr6c_63/Input 6",
// Модуль WB-MR6C 83
"ModLight3_Input0" : "wb-mr6c_83/Input 0",
"Room2_3" : "wb-mr6c_83/Input 1",
"Hall1_1" : "wb-mr6c_83/Input 2",
"Hall1_2" : "wb-mr6c_83/Input 3",
"Kladovka" : "wb-mr6c_83/Input 4",
"WC" : "wb-mr6c_83/Input 5",
"Room2_4" : "wb-mr6c_83/Input 6",
// Модуль WB-MR6C 84
"ModLight4_Input0" : "wb-mr6c_84/Input 0",
"Hall2_1" : "wb-mr6c_84/Input 1",
"Hall2_2" : "wb-mr6c_84/Input 2",
"Hall2_3" : "wb-mr6c_84/Input 3",
"Krilco_1" : "wb-mr6c_84/Input 4",
"Krilco_2" : "wb-mr6c_84/Input 5",
"Saray1" : "wb-mr6c_84/Input 6",
// Модуль WB-MR6C 117
"ModLight5_Input0" : "wb-mr6c_117/Input 0",
"Saray2" : "wb-mr6c_117/Input 1",
"UpstairSaray1" : "wb-mr6c_117/Input 2",
"Saray3" : "wb-mr6c_117/Input 3",
"Pogreb2" : "wb-mr6c_117/Input 4",
"Pogreb21" : "wb-mr6c_117/Input 5",
"Out_5_6" : "wb-mr6c_117/Input 6",
// WB-LED 130
"ModLed1Input1" : "wb-led_130/Input 1", // Вход 1
"ModLed1Input2" : "wb-led_130/Input 2", // Вход 2
"ModLed1Input3" : "wb-led_130/Input 3", // Вход 3
"ModLed1Input4" : "wb-led_130/Input 4", // Вход 4
"ModLed1Overcurrent" : "wb-led_130/Overcurrent", // Перегрузка по току
// WB-LED 144
"ModLed2Input1" : "wb-led_144/Input 1", // Вход 1
"ModLed2Input2" : "wb-led_144/Input 2", // Вход 2
"ModLed2Input3" : "wb-led_144/Input 3", // Вход 3
"ModLed2Input4" : "wb-led_144/Input 4", // Вход 4
"ModLed2Overcurrent" : "wb-led_144/Overcurrent", // Перегрузка по току
};
// Описываем релейныу дискретные выходы освещения
var LightOUTChannelsNames = {
// WB-MR6C 16
"Room1_1" : "wb-mr6c_16/K1", // Выход 1.1
"Room1_2" : "wb-mr6c_16/K2", // Выход 1.2
"Room1_3" : "wb-mr6c_16/K3", // Выход 1.3
"Room1_4" : "wb-mr6c_16/K4", // Выход 1.4
"Room1_5" : "wb-mr6c_16/K5", // Выход 1.5
"Room1_6" : "wb-mr6c_16/K6", // Выход 1.6
// WB-MR6C 63
"Kitchen1_1" : "wb-mr6c_63/K1", // Выход 2.1
"Kitchen1_2" : "wb-mr6c_63/K2", // Выход 2.2
"Kitchen1_3" : "wb-mr6c_63/K3", // Выход 2.3
"Kitchen1_4" : "wb-mr6c_63/K4", // Выход 2.4
"Room2_1" : "wb-mr6c_63/K5", // Выход 2.5
"Room2_2" : "wb-mr6c_63/K6", // Выход 2.6
// WB-MR6C 83
"Room2_3" : "wb-mr6c_83/K1", // Выход 3.1
"Hall1_1" : "wb-mr6c_83/K2", // Выход 3.2
"Hall1_2" : "wb-mr6c_83/K3", // Выход 3.3
"Kladovka" : "wb-mr6c_83/K4", // Выход 3.4
"WC" : "wb-mr6c_83/K5", // Выход 3.5
"Room2_4" : "wb-mr6c_83/K6", // Выход 3.6
// WB-MR6C 84
"Hall2_1" : "wb-mr6c_84/K1", // Выход 4.1
"Hall2_2" : "wb-mr6c_84/K2", // Выход 4.2
"Hall2_3" : "wb-mr6c_84/K3", // Выход 4.3
"Krilco_1" : "wb-mr6c_84/K4", // Выход 4.4
"Krilco_2" : "wb-mr6c_84/K5", // Выход 4.5
"Saray1" : "wb-mr6c_84/K6", // Выход 4.6
// WB-MR6C 117
"Saray2" : "wb-mr6c_117/K1", // Выход 5.1
"UpstairSaray1" : "wb-mr6c_117/K2", // Выход 5.2
"Saray3" : "wb-mr6c_117/K3", // Выход 5.3
"Pogreb2" : "wb-mr6c_117/K4", // Выход 5.4
"Pogreb21" : "wb-mr6c_117/K5", // Выход 5.5 - резерв
"Out_5_6" : "wb-mr6c_117/K6", // Выход 5.6
// WB-MR6CU 131
"Outdoor1" : "wb-mr6cu_131/K1", // Выход 6.1 - Крыльцо у входа, малый свет (1.1)
"Outdoor2" : "wb-mr6cu_131/K2", // Выход 6.2 - Ворота и проезд, большой свет (2)
"Outdoor3" : "wb-mr6cu_131/K3", // Выход 6.3 - Крыльцо у входа, большой свет (3)
"Outdoor4" : "wb-mr6cu_131/K4", // Выход 6.4 - Калитка и проход у дома (4)
"Outdoor5" : "wb-mr6cu_131/K5", // Выход 6.5 - Дальний проход и торец дома (5)
"Outdoor6" : "wb-mr6cu_131/K6", // Выход 6.6 - Освещение дороги с фасада (6)
// WB-MR6CU 239
"Outdoor7" : "wb-mr6cu_239/K1", // Выход 7.1 - Сад за домом, малый свет (7)
"Outdoor8" : "wb-mr6cu_239/K2", // Выход 7.2 - Проход к огороду слева (8)
"Outdoor9" : "wb-mr6cu_239/K3", // Выход 7.3 - Сад за домом, большой свет (9)
"Outdoor10" : "wb-mr6cu_239/K4", // Выход 7.4 - Освещение огорода и теплиц (10)
"UpstairRooms1" : "wb-mr6cu_239/K5", // Выход 7.5
"UpstairRooms2" : "wb-mr6cu_239/K6", // Выход 7.6
// WB-MR6CU 108
"Outdoor1_1" : "wb-mr6cu_108/K1", // Выход 8.1
"UpstairRooms3" : "wb-mr6cu_108/K2", // Выход 8.2
"Heating3" : "wb-mr6cu_108/K3", // Выход 8.3 - Погреб в коридоре КР2
"Out_8_4" : "wb-mr6cu_108/K4", // Выход 8.4
"Out_8_5" : "wb-mr6cu_108/K5", // Выход 8.5
"Out_8_6" : "wb-mr6cu_108/K6", // Выход 8.6
// WB-LED 130
"Out13_ON" : "wb-led_130/RGB Strip", // Выход 1-3
"Kitchen1_12_ON" : "wb-led_130/Channel 4", // Выход 4
// WB-LED 144
"Hall2_11_ON" : "wb-led_144/RGB Strip", // Выход 1-3
"Kitchen1_11_ON" : "wb-led_144/Channel 4", // Выход 4
};
// Описываем релейныу дискретные выходы освещения
var LightOUTOptionsChannelsNames = {
// WB-LED 130
"Out13_StripHue" : "wb-led_130/RGB Strip Hue", // Выход 1-3 Оттенок RGB ленты (H)
"Out13_StripSaturation" : "wb-led_130/RGB Strip Saturation", // Выход 1-3 Насыщенность цвета RGB ленты (S)
"Out13_StripBrightness" : "wb-led_130/RGB Strip Brightness", // Выход 1-3 Яркость RGB ленты (V)
"Kitchen1_12_ON" : "wb-led_130/Channel 4", // Выход 4
"Kitchen1_12_Brightness" : "wb-led_130/Channel 4 Brightness", // Выход 4 яркость
"ModLed1OvercurrentOff" : "wb-led_130/Overcurrent", // Перегрузка по току
// WB-LED 144
"Hall2_11_StripHue" : "wb-led_144/RGB Strip Hue", // Выход 1-3 Оттенок RGB ленты (H)
"Hall2_11_StripSaturation" : "wb-led_144/RGB Strip Saturation", // Выход 1-3 Насыщенность цвета RGB ленты (S)
"Hall2_11_StripBrightness" : "wb-led_144/RGB Strip Brightness", // Выход 1-3 Яркость RGB ленты (V)
"Kitchen1_11_ON" : "wb-led_144/Channel 4", // Выход 4
"Kitchen1_11_Brightness" : "wb-led_144/Channel 4 Brightness", // Выход 4 яркость
"ModLed2OvercurrentOff" : "wb-led_144/Overcurrent", // Перегрузка по току
};
// Описываем функции дискретных выходов
exports.LIGHTS = {
"IN" : {
"Index" : function(name) {
return LightINChannelsNames[name];
},
"Get" : function(name) {
return dev[exports.LIGHTS.IN.Index(name)] ? true : false;
},
},
"OUT" : {
"Index" : function(name) {
return LightOUTChannelsNames[name];
},
"Get" : function(name) {
return dev[exports.LIGHTS.OUT.Index(name)] ? true : false;
},
"Set" : function(name, State, nolog) {
State = State ? true : false;
if (dev[exports.LIGHTS.OUT.Index(name)] == State) return;
dev[exports.LIGHTS.OUT.Index(name)] = State ? true : false;
if (!nolog) log("Установлен в " + (State ? "1" : "0") + " \"" + name + "\": " + exports.LIGHTS.OUT.Index(name));
return State;
},
"On" : function(name, nolog) {
if (dev[exports.LIGHTS.OUT.Index(name)] == true) return;
dev[exports.LIGHTS.OUT.Index(name)] = true;
if (!nolog) log("Включен \"" + name + "\": " + exports.LIGHTS.OUT.Index(name));
},
"Off" : function(name, nolog) {
if (dev[exports.LIGHTS.OUT.Index(name)] == false) return;
dev[exports.LIGHTS.OUT.Index(name)] = false;
if (!nolog) log("Отключен \"" + name + "\": " + exports.LIGHTS.OUT.Index(name));
},
"Toggle" : function(name, nolog) {
var State = dev[exports.LIGHTS.OUT.Index(name)] ? false : true;
dev[exports.LIGHTS.OUT.Index(name)] = State;
if (!nolog) log("Переключен \"" + name + "\" в " + (State ? "1" : "0") + ": " + exports.LIGHTS.OUT.Index(name));
return State;
},
"List" : function() {
return Object.keys(LightOUTChannelsNames);
},
"GetValue" : function(name) {
return dev[LightOUTOptionsChannelsNames[name]];
},
"SetValue" : function(name, Value, nolog) {
if (dev[LightOUTOptionsChannelsNames[name]] == Value) return;
dev[LightOUTOptionsChannelsNames[name]] = Value;
if (!nolog) log("Установлен в " + Value + " \"" + name + "\": " + LightOUTOptionsChannelsNames[name]);
return Value;
},
},
};
// Инвертор/ИБП
var InvertorChannelsNames = {
"upsMode" : "snmp_192.168.184.20_public/upsMode", // Режим
"upsBatEstChargeRemaining" : "snmp_192.168.184.20_public/upsBatEstChargeRemaining", // Заряд АКБ
"upsBatPBatVoltage" : "snmp_192.168.184.20_public/upsBatPBatVoltage", // Напряжение АКБ
"upsBatPBatChargCurrent" : "snmp_192.168.184.20_public/upsBatPBatChargCurrent", // Ток заряда
"upsBatPBatDischargCurrent" : "snmp_192.168.184.20_public/upsBatPBatDischargCurrent", // Ток разряда
"ACinputvoltage" : "snmp_192.168.184.20_public/AC input voltage", // Напряжение на входе
"Outputloadpercent" : "snmp_192.168.184.20_public/Output load percent", // Нагрузка на выходе
"ACoutputactivepower" : "snmp_192.168.184.20_public/AC output active power", // Активная мощность
"ACouputapparentpower" : "snmp_192.168.184.20_public/AC ouput apparent power", // Полная мощность
"ACoutputvoltage" : "snmp_192.168.184.20_public/AC output voltage", // Напряжение на выходе
"MaxMesTemperature" : "snmp_192.168.184.20_public/MaxMesTemperature", // Температура
"OutputSourceStatus" : "snmp_192.168.184.20_public/OutputSourceStatus", // Статус источника выхода
};
// Описываем функции инвертора
exports.INVERTOR = {
"Index" : function(name) {
return InvertorChannelsNames[name];
},
"Get" : function(name) {
return dev[exports.INVERTOR.Index(name)];
},
"Error" : function(name) {
if (dev[exports.INVERTOR.Index(name)] === null) return 1;
return dev[exports.INVERTOR.Index(name) + "#error"] == "r";
},
};
// Описываем датчики температуры
var DS18B20ChannelsNames = {
"Kitchen1" : "wb-w1/28-000006777942", // Кухня 1 (у входа)
"Kitchen1_1" : "wb-w1/28-00000ff78dea", // Кухня 1 (у гарнитура)
"Room1" : "wb-w1/28-00000ff77a1f", // Комната 1
"Kitchen2" : "wb-w1/28-000006777942", // Кухня 2 //--
"Room2" : "wb-w1/28-00000ff77a1f", // Комната 2 //--
"HallKR1" : "wb-w1/28-021466c1acff", // Коридор между комнатами
"SCHVUUpSection" : "wb-w1/28-0314665343ff", // Верхняя секция ЩВУ
"SCHVUInvertorSection" : "wb-w1/28-021466c071ff", // Секция инвертора
"SCHVUAKBSection" : "wb-w1/28-021466c008ff", // Секция АКБ
"Pogreb3Up" : "wb-w1/28-00000ff68d1d", // Погреб с овощами (верх)
// "Pogreb3Down" : "wb-w1/28-000006775ed9", // Погреб с овощами (низ)
"Pogreb1" : "wb-w1/28-00042e0683ff", // Погреб водоснабжения
"SCHVS" : "wb-w1/28-00042e0664ff", // Щит водоснабжения
// "Gallery1" : "wb-w1/28-00000ff68d1d", // Теплица 1 //--
// "Gallery2" : "wb-w1/28-000006775ed9", // Теплица 2 //--
"Street1" : "wb-w1/28-00000ff6d968", // Улица 1
};
// Описываем функции датчиков температур
exports.DS18B20 = {
"Index" : function(name) {
return DS18B20ChannelsNames[name];
},
"Get" : function(name) {
return dev[exports.DS18B20.Index(name)];
},
"Error" : function(name) {
if (dev[exports.DS18B20.Index(name)] === null) return 1;
return dev[exports.DS18B20.Index(name) + "#error"] == "r";
},
"List" : function() {
return Object.keys(DS18B20ChannelsNames);
},
};
// Аналоговые входы
var AINChannelsNames = {
// Измеритель на вводе
"InputUrms" : "wb-map6s_55/Urms", // Напряжение ввода
"InputAP" : "wb-map6s_55/P 1", // Активная мощность ввода
"InputEnergyAP" : "wb-map6s_55/AP energy 1", // Израсходованная энергия ввода
"InputSP" : "wb-map6s_55/S 1", // Полная мощность ввода
"InputAP_QFD1" : "wb-map6s_55/P 2", // Активная мощность QFD1 (обогрев, баня)
"InputEnergyAP_QFD1" : "wb-map6s_55/AP energy 2", // Израсходованная энергия ввода
"InputSP_QFD1" : "wb-map6s_55/S 2", // Полная мощность QFD1 (обогрев, баня)
"WaterHeater1AP" : "wb-map6s_55/P 3", // Активная мощность нагревателя воды 1
"WaterHeater1AP" : "wb-map6s_55/AP energy 3", // Израсходованная энергия нагревателя воды 1
"WaterHeater1SP" : "wb-map6s_55/S 3", // Полная мощность нагревателя воды 1
"WaterHeater1Current" : "wb-map6s_55/Irms 3", // Ток нагревателя воды 1
// Измеритель на шинах нагрузки
"OutputUrms" : "wb-map6s_116/Urms", // Напряжение шин нагрузки
"OutputAP_QFD2" : "wb-map6s_116/P 1", // Активная мощность QFD2 (освещ., роз. кухн.)
"OutputAP_QFD3" : "wb-map6s_116/P 2", // Активная мощность QFD3 (розетки)
"OutputAP_QFD4" : "wb-map6s_116/P 3", // Активная мощность QFD4 (кондиц., ул. душ)
"OutputAP_QFD5" : "wb-map6s_116/P 4", // Активная мощность QFD5 (система управления)
"OutputAP_QFD6" : "wb-map6s_116/P 5", // Активная мощность QFD6 (водоснабжение)
"OutputAP_CLimatControl" : "wb-map6s_116/P 6", // Активная мощность системы климат-контроля ЩВУ
"OutputSP_QFD2" : "wb-map6s_116/S 1", // Полная мощность QFD2 (освещ., роз. кухн.)
"OutputSP_QFD3" : "wb-map6s_116/S 2", // Полная мощность QFD3 (розетки)
"OutputSP_QFD4" : "wb-map6s_116/S 3", // Полная мощность QFD4 (кондиц., ул. душ)
"OutputSP_QFD5" : "wb-map6s_116/S 4", // Полная мощность QFD5 (система управления)
"OutputSP_QFD6" : "wb-map6s_116/S 5", // Полная мощность QFD6 (водоснабжение)
"OutputSP_CLimatControl" : "wb-map6s_116/S 6", // Полная мощность системы климат-контроля ЩВУ
"OutputEnergyAP_QFD2" : "wb-map6s_116/AP energy 1", // Израсходованная энергия QFD2 (освещ., роз. кухн.)
"OutputEnergyAP_QFD3" : "wb-map6s_116/AP energy 2", // Израсходованная энергия QFD3 (розетки)
"OutputEnergyAP_QFD4" : "wb-map6s_116/AP energy 3", // Израсходованная энергия QFD4 (кондиц., ул. душ)
"OutputEnergyAP_QFD5" : "wb-map6s_116/AP energy 4", // Израсходованная энергия QFD5 (система управления)
"OutputEnergyAP_QFD6" : "wb-map6s_116/AP energy 5", // Израсходованная энергия QFD6 (водоснабжение)
"OutputEnergyAP_CLimatControl": "wb-map6s_116/AP energy 6", // Ток системы климат-контроля ЩВУ
"OutputCurrent_CLimatControl": "wb-map6s_116/Irms 6", // Израсходованная энергия системы климат-контроля ЩВУ
// Низковольтные системы
"MainPower27V" : "wb-adc/Vin", // Напряжение питания 27 В
"DatPower5V" : "wb-adc/V5_0", // Напряжение питания датчиков 5 В
// Датчики давления водоснабжения и полива
"PDatPoliv_Ma" : "wb-mai6_119/IN 1 P Current", // Датчик полива, миллиамперы
"PDatMainIn_Ma" : "wb-mai6_119/IN 2 P Current", // Датчик насоса, миллиамперы
"PDatMainOut_Ma" : "wb-mai6_119/IN 3 P Current", // Датчик гидроаккумулятора, миллиамперы
};
// Описываем функции аналоговых входов
exports.AIN = {
"Index" : function(name) {
return AINChannelsNames[name];
},
"Get" : function(name) {
return dev[exports.AIN.Index(name)];
},
"Error" : function(name) {
if (dev[exports.AIN.Index(name)] === null) return 1;
return dev[exports.AIN.Index(name) + "#error"] == "r";
},
};
// Аналоговые выходы
var AOUTChannelsNames = {
"MainFanOn" : "wb-mao4_221/Channel 1 Switch", // Канал 1 включить/отключить
"MainFanLevel" : "wb-mao4_221/Channel 1 Dimming Level", // Канал 1
"HeatingFanOn" : "wb-mao4_221/Channel 2 Switch", // Канал 1 включить/отключить
"HeatingFanLevel" : "wb-mao4_221/Channel 2 Dimming Level", // Канал 1
};
// Описываем функции аналоговых выходов
exports.AOUT = {
"Index" : function(name) {
return AOUTChannelsNames[name];
},
"Get" : function(name) {
return dev[exports.AOUT.Index(name)];
},
"Set" : function(name, State, nolog) {
if (dev[exports.AOUT.Index(name)] == State) return;
dev[exports.AOUT.Index(name)] = State;
if (!nolog) log("Задан " + State + " \"" + name + "\": " + exports.AOUT.Index(name));
},
};
// Описываем функции флагов системы
exports.FLAGS = {
"Get" : function(name) {
return module.static.DATA[name];
},
"Set" : function(name, State) {
module.static.DATA[name] = State;
},
};
// Описываем устройства
var DevicesNames = {
// Реальные устройства и их значимые регистры
"wb-mao4_221" : "wb-mao4_221/Serial",
"wb-mr6c_16" : "wb-mr6c_16/Serial",
"wb-mr6c_63" : "wb-mr6c_63/Serial",
"wb-mr6c_83" : "wb-mr6c_83/Serial",
"wb-mr6c_84" : "wb-mr6c_84/Serial",
"wb-mr6c_117" : "wb-mr6c_117/Serial",
"wb-mr6cu_108" : "wb-mr6cu_108/Serial",
"wb-mr6cu_131" : "wb-mr6cu_131/Serial",
"wb-mr6cu_239" : "wb-mr6cu_239/Serial",
"wb-led_130" : "wb-led_130/Serial",
"wb-led_144" : "wb-led_144/Serial",
"wb-map6s_55" : "wb-map6s_55/Serial",
"wb-map6s_116" : "wb-map6s_116/Serial",
"wb-mio-e_183" : "wb-mio-gpio_183:1/K1",
"wb-mai6_119" : "wb-mai6_119/Serial",
// Алиасы имён устройств для использования в ПО
"MAI1_SHVS" : "wb-mai6_119/Serial", // Модуль с датчиками давления в ЩВС
"MIO1_SHVS" : "wb-mio-gpio_183:1/K1", // Модуль с входами-выходами в ЩВС
};
// Описываем функции устройств
exports.Devices = {
"Index" : function(name) {
return DevicesNames[name];
},
"Error" : function(name) {
var Error = dev[exports.Devices.Index(name) + "#error"];
return !!(Error === null || Error);
},
"List" : function() {
return Object.keys(DevicesNames);
},
};
// Регистры управления ПЧ
var PCHRegistersNames = {
"SetFrequency" : "Заданная частота",
"OutFrequency" : "Выходная частота",
"OutCurrent" : "Выходной ток",
"DCVoltage" : "Напряжение на шине DC",
"Motohours" : "Счетчик часов эксплуатации",
"OutVoltage" : "Выходное напряжение",
"ErrorCode" : "Текущий код ошибки",
"CMDPuskStop" : "Команда управления",
"CMDFrequency" : "Задание частоты",
};
var PCHNames = {
"MAIN" : "INNOVERT-ISD-mini-PLUS_1/",
"IR" : "INNOVERT-ISD-mini-PLUS_2/",
};
// Описываем функции работы с ПЧ
exports.PCH = {
"Index" : function(name) {
return PCHNames[name];
},
"Reg" : function(name) {
return PCHRegistersNames[name];
},
"Get" : function(name, reg) {
return dev[exports.PCH.Index(name)+exports.PCH.Reg(reg)];
},
"Set" : function(name, reg, State, nolog) {
dev[exports.PCH.Index(name)+exports.PCH.Reg(reg)] = State;
if (!nolog) log("Задан " + State + " \"" + name + " " + reg + "\": " + exports.PCH.Index(name)+exports.PCH.Reg(reg));
},
"Error" : function(name) {
var Error = dev[exports.PCH.Index(name) + exports.PCH.Reg("DCVoltage") + "#error"];
return !!(Error === null || Error);
},
"List" : function() {
return Object.keys(PCHNames);
},
};