@amgstone Я совсем недавно выложил пример сценария с отсутствием показаний с датчика. В нем как раз запускается таймер и ждёт события с датчика. Вам нужно будет добавить счётчик этих срабатываний, когда таймер запущен. https://forum.ih-systems.com/topic/271/сигнализация-об-отсутствии-показаний-с-датчика
Если не получится, я напишу пример.
goodspeed1986
@goodspeed1986
Best posts made by goodspeed1986
Latest posts made by goodspeed1986
-
RE: Графическая версия сценария.
-
RE: Графическая версия сценария.
@DM19 через блок схемы пока это реализовать невозможно, так как они не поддерживают eventListener. Надо писать сценарий на JavaScript.
-
Сигнализация об отсутствии показаний с датчика
Еще один полезный сценарий для сигнализации об отсутствии показаний с датчиков. Особенно актуален для беспроводных решений, так как показания могут приходит очень редко, например не чаще одного раза в 2 часа.
* @name Отсутствие показаний с датчика * @desc * @version 4 */ const sensor = Device("SensorA","Analog Sensor", [ {"name":"timeAlarm", "note":"Время отсутствия показаний с датчкиа, сек", "type":"number", "val": 7200} ]); startOnChange([sensor]); script({ start() { this.addTimer("T1"); this.startTimer("T1", sensor.getParam("timeAlarm"), "timeAlarm"); sensor.setParam("error",0); this.addListener(sensor, "onChange"); }, onChange() { this.stopTimer("T1"); this.startTimer("T1", sensor.getParam("timeAlarm"), "timeAlarm"); }, timeAlarm() { this.log('Sensor '+ sensor.name +' Alarm'); sensor.setParam("error",1); this.exit(); } });
-
Управление шторами с одной кнопки в "поле"
Добрый день. Хочу поделиться скриптом для управления шторами с одной физической кнопки в комнате и двумя кнопками на интерфейсе.
Вводные данные:- Актуатор на привод для открытия штор
- Актуатор на привод для закрытия штор
- Кнопка без фиксации в комнате на стене с одним контактом
Задача:
Реализовать открытие штор по одинарному нажатию на кнопку, по двойному нажатию закрывать шторы. Во время движения штор, одинарное нажатие отключает привод. Управление двумя кнопками из интерфейса системы./* * * @name Управление шторами * @desc * @version 4 */ const buttonF = Device("ActorD","Кнопка в комнате"); const buttonOp = Device("ActorD","Кнопка открыть", [ {"name":"timeOpen", "note":"Максимально время открытия, сек", "type":"number", "val": 10} ]); const buttonCl = Device("ActorD","Кнопка закрыть", [ {"name":"timeClose", "note":"Максимально время закрытия, сек", "type":"number", "val": 10} ]); const driverOp = Device("ActorD","Привод открытия"); const driverCl = Device("ActorD","Привод закрытия"); startOnChange([buttonF, buttonOp, buttonCl]); script({ start() { this.addTimer("T1"); this.addTimer("T2"); this.addTimer("T3"); //Ручное управление закрытием штор из интерфейса if (buttonCl.isOn() && driverOp.isOff()) { driverCl.on(); this.startTimer("T2", buttonCl.getParam("timeClose"), "timeOutClose"); this.addListener(buttonCl, "driverCloseOff"); } //Ручное управление открытием штор из интерфейса if (buttonOp.isOn() && driverCl.isOff()) { driverOp.on(); this.startTimer("T3", buttonOp.getParam("timeOpen"), "timeOutOpen"); this.addListener(buttonOp, "driverOpenOff"); } //Обработка двойного клика выключателя if (buttonF.isOn()) { this.startTimer("T1", 0.5, "timeOut"); this.addListener(buttonF, "dblClick"); } }, dblClick() { if (buttonF.isOn() && driverOp.isOff() && driverCl.isOff()) { this.stopTimer("T1"); driverCl.on(); this.startTimer("T2", buttonCl.getParam("timeClose"), "timeOutClose"); this.addListener(buttonF, "timeOut1"); } }, //Обработка одинарного нажатия выключателя timeOut() { this.removeListener(buttonF, "dblClick"); if (buttonF.isOn() && driverOp.isOff() && driverCl.isOff()) { this.startTimer("T3", buttonOp.getParam("timeOpen"), "timeOutOpen"); this.addListener(buttonF, "timeOut1"); driverOp.on(); } }, //Остановка работы приводов timeOut1() { if (buttonF.isOn() && driverOp.isOn()) { driverOp.off(); this.exit(); } if (buttonF.isOn() && driverCl.isOn()) { driverCl.off(); this.exit(); } }, //Отключение приводов в ручном режиме driverCloseOff () { driverCl.off(); this.exit(); }, driverOpenOff() { driverOp.off(); this.exit(); }, //Отключение приводов через заданное время автоматически timeOutClose() { driverCl.off(); buttonCl.off(); this.exit(); }, timeOutOpen() { driverOp.off(); buttonOp.off(); this.exit(); } });
-
RE: IntraHouse +Zabbix
Добрый день, @dangers-77.
- Самый простой способ интеграции Zabbix и системы intrahouse я вижу через протокол MQTT. Здесь вы получите двунаправленную связь и понятную систему топиков. Можете для каждого объекта использовать свой плагин или получать все данные через один плагин MQTT. Хочу напомнить, что каждый запущенный плагин распараллеливает нагрузку на ядра центрального процессора, так как запускаются в отдельном потоке.
- Базу данных предлагаю использовать MySql. Если вы не собираетесь писать сотни тысячей записей в секунду и ее не будут опрашивать одновременно 100 пользователей производительности базы должно хватить.
- На текущий момент HTTP API для взаимодействия со сторонними сервисами не реализован. Исторические данные получить пока не получиться, только realtime через MQTT, OPC UA, HTTP.
-
RE: Сценарии пользователей
@amgstone Добрый день. Так как вы хотите сделать не получится реализовать на данный момент с помощью блок схем. Вам необходимо написать сценарий на js или воспользоваться готовыми https://ih-systems.com/ru/scenes-examples/
-
RE: Вопрос поддержки железа
Заказал новую штуку из Китая в качестве сервера для умного дома.
US $32.98 | RealQvol FriendlyARM Елец NanoPi R1 Allwinner H3 Гбит Ethernet на борту Wi-Fi Bluetooth OpenWRT
https://s.click.aliexpress.com/e/bRDFjJEs
Заказал версию с 8 Гб emmc на борту. Попросил, чтобы установили ubuntu вместо openwrt.
Вчера пришел девайс. Впечатления только положительные: корпус металл + wi fi антенна, охлаждение через радиатор и термопрокладку на основной корпус, 2 ethernet, один 1 Гбит, другой 100 Мбит, UART на борту, часы реального времени, достаточно установить батарейку через разъем, нет лишних портов hdmi, звуковых и т.д. И самое главное ih встала с полпинка. Температура процессора 34 градуса. Хорошая альтернатива raspberry pi.
-
RE: Wago 750-880
Для того, чтобы у вас заработал проект на контроллере 750-880, вам необходимо сменить его в настройках целевой платформы и обязательно проверить, чтобы стояла галочка загрузка символьного файла.
-
RE: Wago 750-880
А вы пытаетесь локально подключиться или сервер интрахаус находится в интернете?