Dynamic IR Pronto hex strings
Posted: Tue Jun 10, 2008 11:04 am
I am stuck with the following problem:
I have 7 A/C (in addition to other equipment) to be controlled via IR with a few USBUIRT's, and multiple serial ports.
The specific problem with the IR protocol for A/C's seems to be that *all the state* is transmitted at once via the IR protocol in 16 bits (temperature, fan, mode, swing, etc.). This is for *any* button press. For instance, if you press "swing on/off", it changes and displays the swing status on the remote control and then sends an IR burst with all the AC data (inckuding temperature and the rest). This seems to be the case with all of the airconditioners remotes I have seen.
Now, obviously, it does not make sense to enter tens of thousands of burst combinations in the database - notwithstanding the pain of programatically selecting them via a script device.
I have a routine able to create the IR burst from the parameters in pronto hex format.
The problem is that there is no way to send that burst via the interface. I have tried a number of methods, like dynamically updating the MDB file (doesn't work it's cached), or sending parts of the string with multiple commands by the device (too slow, there is a minimum delay, enough to break the IR receiver protocol)
The only way I could think of, is to rewrite the USBUIRT plugin to accept parameters from the device (like serial with the %x), but this is a bit drastic. Anyone has a simpler idea ?
By the way, I'm using the modified plugins by Loginn since I have to support 3 USBUIRT's, but I'm open to any suggestion.
I have 7 A/C (in addition to other equipment) to be controlled via IR with a few USBUIRT's, and multiple serial ports.
The specific problem with the IR protocol for A/C's seems to be that *all the state* is transmitted at once via the IR protocol in 16 bits (temperature, fan, mode, swing, etc.). This is for *any* button press. For instance, if you press "swing on/off", it changes and displays the swing status on the remote control and then sends an IR burst with all the AC data (inckuding temperature and the rest). This seems to be the case with all of the airconditioners remotes I have seen.
Now, obviously, it does not make sense to enter tens of thousands of burst combinations in the database - notwithstanding the pain of programatically selecting them via a script device.
I have a routine able to create the IR burst from the parameters in pronto hex format.
The problem is that there is no way to send that burst via the interface. I have tried a number of methods, like dynamically updating the MDB file (doesn't work it's cached), or sending parts of the string with multiple commands by the device (too slow, there is a minimum delay, enough to break the IR receiver protocol)
The only way I could think of, is to rewrite the USBUIRT plugin to accept parameters from the device (like serial with the %x), but this is a bit drastic. Anyone has a simpler idea ?
By the way, I'm using the modified plugins by Loginn since I have to support 3 USBUIRT's, but I'm open to any suggestion.