Your comments

build 1.1.3.11667


What happened is unknown. I could go into the web interface for a few seconds, then another reboot occurred.
Had time to look in a log file (/var/lib/iRidium server/Logs/) there was a line with some error. The text did not have time to copy.


But now there is no way to check. The flash drive is formatted and the server is installed again. Perhaps the flash itself failed.

I share the working decision. Today I tested it on a real server. Can someone else come in handy


var idHDLWatchdogTimer = 0; 
            
function initHDLWatchdog(){
   IR.AddListener(IR.EVENT_TAG_CHANGE, HDLdevice, function(name, value){ 
                                                
      if(IR.GetVariable("Server.Tags.HDLWatchdog") == false || idHDLWatchdogTimer){ 
         IR.ClearInterval(idHDLWatchdogTimer);
         idHDLWatchdogTimer = 0;                
         
         IR.SetTimeout(5000, function(){            
            //wait until 500ms for HDL bus activity, and restrt 10 sec timeout        
            idHDLWatchdogTimer = IR.SetTimeout(500, function(){  
               //if no activity - reset watchdog variable      
               IR.Log("===There is no Data from the HDL bus for a 10 sec, offline indicated");
               IR.SetVariable("Server.Tags.HDLWatchdog", false);
               idHDLWatchdogTimer = 0;
            });  
         });                            
         IR.SetVariable("Server.Tags.HDLWatchdog", true);  
      } 
   }); 
}

В скрипте я указываю не номер устройства, а его имя: Curtain Cabinet, Curtain Bedroom.

Хочется чтоб структура и код проекта были понятными. А не сопоставлять индексы названиям и держать их в уме или писать доп.пояснения. А через пол-года забыть какой зоне соответствует Curtain 1, а какой Curtain 35.

Данным "удобством" имхо вы плодите сущности.

1. Команды легко отличить если сами устройства, которым принадлежат эти команды, имеют разные названия.



2. Мне надо из скрипта отправлять команды в одинаковые каналы разных устройств. Конкретно:ИК трансмиттеры.

Было бы не плохо. Как раз для текущего проекта надо добавить 7 одинаковых модулей IR-EM для управления кондеями.

Кстати, кнопка "Clone" позволяет клонировать каналы сабдевайсов HDL. Но то что получается - наводит на мысль что этот функционал тоже не доработан. Скриншоты прилагаю:

если нет ответа 2 недели - тема считается разработчиками не актуальной или незначительной?

ok, but how check HDL is online on server?

I'm using this script in real project with Raspberry Pi server. But in the latest version of the Iridium server many errors have appeared (one after another):

[15-04-2017 20:25:36.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:36.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:36.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:36.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:36.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:36.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:36.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:36.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       WARNING SCRIPT  Script exception: RangeError: /var/lib/iRidium Server/Documents/RaspberryPi_Server/scripts/HDL_service.js:46: error
[15-04-2017 20:25:37.000]       DEBUG   SCRIPT  Script garbage memory collected. 

After performing the garbage collection, it disappears for a while, but then appears again.


function initHDLWatchdog(){
   IR.AddListener(IR.EVENT_TAG_CHANGE, HDLdevice, function(name, value){
      IR.SetVariable("Server.Tags.HDLWatchdog", 1);   
      IR.ClearInterval(idHDLWatchdogTimer); 
      idHDLWatchdogTimer = IR.SetTimeout(10000, function(){  //This line is followed by the error text                               
         debug("===There is no Data from the HDL bus for a 10 sec, offline indicated");
         IR.SetVariable("Server.Tags.HDLWatchdog", 0); 
      });    
   }); 
}


Пересохранил. Это решило проблему. Спасибо!)