public static final String BINDING_ID = "tivo";
public static final int CONFIG_SOCKET_TIMEOUT_MS = 1000;
public static final int INIT_POLLING_DELAY_S = 5;
+ public static final int POLLING_DELAY_12HR_S = 43200;
// List of all Thing Type UIDs
public static final ThingTypeUID THING_TYPE_TIVO = new ThingTypeUID(BINDING_ID, "sckt");
};
if (tivoConfigData.isKeepConnActive()) {
- // Run once
- refreshJob = scheduler.schedule(runnable, INIT_POLLING_DELAY_S, TimeUnit.SECONDS);
+ // Run once every 12 hours to keep the connection from going stale
+ refreshJob = scheduler.scheduleWithFixedDelay(runnable, INIT_POLLING_DELAY_S, POLLING_DELAY_12HR_S,
+ TimeUnit.SECONDS);
logger.debug("Status collection '{}' will start in '{}' seconds.", getThing().getUID(),
INIT_POLLING_DELAY_S);
} else if (tivoConfigData.doPollChanges()) {
logger.debug(" statusRefresh '{}' - EXISTING status data - '{}'", tivoConfigData.getCfgIdentifier(),
tivoStatusData.toString());
}
+
+ // this will close the connection and re-open every 12 hours
+ if (tivoConfigData.isKeepConnActive()) {
+ connTivoDisconnect();
+ doNappTime();
+ }
+
connTivoConnect();
doNappTime();
if (!tivoConfigData.isKeepConnActive()) {