0
Under review

Is it possible for iRidium server to know when a panel disconnects?

Luka Krcmar 3 years ago updated by Vladimir Ovchinnikov (expert) 3 years ago 9

We need this to stop all motors when iPad panel loses connection to server/internet. I'm talking about iRidium Pro here. Thanks in advance.

Under review

Hello.

What do you mean by Internet access on an iPad? If activated 3G/4G, you can track the token "System.Net.Cell". Read more here. If Internet access is considered to be the availability of some external host, then identify it and ping it periodically. if there is no ping, send your device drivers to Disconnect.

Hi Vladimir,

well basically I meant when iPad loses connection to iridium server, for whatever reason. My client wants to be sure that if they lose controll of the motors, that these motors will stop immediately.

Then everything is easier. You need to monitor the EVENT_RELEASE event on the server and send shutdown commands to the drivers when it is activated. You need to do this on the server, because if the panel is disconnected from the server, it can no longer send a command. If the server is alive, it will perform a shutdown on the EVENT_RELEASE event.

I've tried this and it works when i turn the iPad screen off or exit the i3pro app. But it doesn't work when i turn off WiFi for example. Is this script okay?


IR.AddListener(IR.EVENT_RELEASE, IR.GetServer(), function (ID, LocalIP, LocalPort, HostIP, HostPort)

{

var time = IR.GetVariable("System.Time.24");

IR.Log("Release Client: "+time+", "+ID+", "+LocalIP+", "+LocalPort+", "+HostIP+", "+HostPort);

IR.GetDevice("HDL Buspro Network").Set("Relay 12CH:Channel 03", 0)

IR.GetDevice("HDL Buspro Network").Set("Relay 12CH:Channel 04", 0)

IR.GetDevice("HDL Buspro Network").Set("Relay 12CH:Channel 05", 0)

IR.GetDevice("HDL Buspro Network").Set("Relay 12CH:Channel 06", 0)

});

Hello.

The code is correct. When disabled in the WiFi panel, the EVENT_RELEASE event will trigger on the server, but the time range is very wide. Maybe in a minute or later.


If you need to trigger an event within a pre-known range, you can send a message from the panel at a pre-specified interval. Configure the processing of such messages on the server. If the message is not more than a certain range, then consider the panel disabled and send the disable command to the devices.

Hi, do you maybe have an example of sending and receiving a message like that? I am assuming this can't be done with push because here the panel sends notification to server.

Thank you very much, works like a charm.

Just have one more question: is there a script command which turns ON show status bar on iPad? 

+1

Hello.

Yes, you can use system tokens (the script is not needed for this):


The same tokens can be used by the script.