truphl Posted January 25 Posted January 25 I have a powered gate with an IOLinc plugged into the controller, both for triggering open/close and for reading open/closed status. I also have several insteon keypads tied into a scene with the IOLinc so that I can trigger the gate to open/close from them, and see at a glance whether it's open or closed. The nice thing about the system is that even if someone uses the gate's native radio opener to open it, the keypad status light stays correct. Most of the time... Sometimes I think a signal gets dropped or whatever and one of the keypads doesn't get the memo about the gate changing state, and then the light isn't in sync with the actual state of the gate. I'm a software dev and in other fields I'd design an "anti-entropy" process to periodically sync up my keypad light states with the state of the gate per the IOLinc. I've never done any programming with my eisy but ideally I'd set up a job to run every 5 or 10 minutes to query the IOLinc state and make sure that the keypad lights are correct. Is that easy to do with eisy? Can someone point me to relevant examples? I program in a bunch of other languages but am not familiar with the programming environment on the eisy so I (hopefully!) mostly just need to figure out what maps to what I already know. Thanks!
Guy Lavoie Posted January 26 Posted January 26 Yes, you can program the eisy to send a "query" to the IOLinc. This asks the module to send it's current status. I do this with a garage door opener application. The IOLinc is not a dual band module, it's powerline only. This makes it more likely to lose a signal transmission if it activates a motor driven device that produces electrical noise. To poll it's status regularly, you could schedule a bunch of hourly requests, such as like this for every 15 minutes: If Time is 8:00 Or Time is 9:00 Or time is 10:00 .... Then Set (IOLinc name) Query Wait 15 minutes Set (IOLinc name) Query Wait 15 minutes Set (IOLinc name) Query Wait 15 minutes Set (IOLinc name) Query But before doing all that, try activating the gate with your program, then wait for the time it takes the gate to open or close, plus 10 extra seconds, and then adding a query statement after that. This would have it queried after the time that the motor has finished opening or closing the gate, when the electrical noise has stopped. See if that makes a difference.
paulbates Posted January 26 Posted January 26 (edited) The iolinc is single band, meaning that it only communicates via powerline. The gate motor(s) will create powerline noise, with the added complication of likely being far away from the rest of the Insteon network in terms of wire feet, which is how long the iolinc's signal has to travel Some direct remediation things to try an Insteon plugin filter on the gate motor if that's possible. It will block the motor's noise If your gate is relatively close to the house and insteon RF signals might make to other Insteon dualband devices in your house, plug a lamplinc or other dualband module into the back of the iolinc. Plug one in the area by the gate temporarily as a test. Another programming idea in addition to Guy's is to create a program that you set to "Run Then" on startup. This will cause the program to automatically run and it will keep running until eisy is shutdown or rebooted: IF - No conditions Then Repeat Every 15 minutes Set 'Gate device name' Query When in programs, go to the summary tab and right click on the program on the Run at Startup column and click "run Then". For the very first time after you write that program, you'll also need to go back to the Details tab, right click on it and click "Run then" to get it going There are a couple of complications with using query. I don't believe that the query will resend the scene to sync the keypad buttons, so a program will be needed to detect and resend the scene "on" or "off": If 'gate device' status is on Then wait 3 seconds set 'gate switch scene' on Else wait 3 seconds set 'gate switch scene" off 3 second waits are recommended because this program will also run when the gate operates and the iolinc catches it, there's a chance of the program and the iolinc traffic banging into each other. The program will only run when there is a change. The query could return an error, so program to trap that might be needed, depending on how the above works that might be another step Edited January 26 by paulbates 1
apostolakisl Posted January 27 Posted January 27 I would double the recommendation to put a dual band device (like a lamplinc) at the gate to increase the robustness of the Insteon signal. I do that for an old single band Insteon Synchrolinc that I don't really have a good alternative for (it keeps track of my washing machine so I know when it has finished). Alternatively, put a device out there that uses IP. I use webcontrol boards to do a lot of IO stuff and PG3 has a free plugin in for that. The only issue with webcontrol is that they are not wifi, so you either need to have ethernet run out there or you need a wifi to ethernet adapter. An example of what I use a webcontrol board is to run pool pumps. I also use it to track the pool water temp and air temp as it has 1-wire interface. But I have an ethernet wire run to my pool control area. 1
Recommended Posts