Kira IR Receiver and Transmitter Plugins

Thanks Rex! I just got thru reading this thread and that became clear. One of the main functions I’d be interested in is triggering a scene to dim lights when I turn on my TV. I’ve got a Harmony 700 which no doubt works similarly to the 1100 you mentioned earlier in the thread. When I start the “Watch TV” activity on the remote, it of course barfs out several IR commands to different AV units in rapid succession? Would each of those commands be recognizable independently by the KiraRx plugin so that the command to turn on the TV would be able to be picked out of the series? Would it make sense to have a separate programmed button to dim the lights?

FWIW I’m glad you integrated the KiraTx. I think that’d be useful while I’m on vacation. :slight_smile: I wouldn’t use that for daily use as it’d confuse the harmony and be more trouble than it’s worth–but when I’m not home…

I find KiraRx can recognize a command in a string of them very reliably. I do use specific commands for my lights, though. This works well with the Harmony’s concept of Activities and also allows me to add lighting buttons to appropriate pages so that I can change levels while watching TV.

Does Keene ship to the US, or is there another reseller for them here? Or even better, is there a similar, cheaper product in the US?

Keene ships to the US. Just make sure you procure the version with the world power adapter, not the UK version.

Rex,

Just got my Kira’s in the mail. Just wanted to confirm the correct place to get the KiraRX code is from the google-docs link in the first post of this thread, correct?

I’ve already installed those files, got the plugin running and tested behavior with netcat, just wanted to make sure I am ready to integrate the IR units this evening.

Just wanted to confirm the correct place to get the KiraRX code is from the google-docs link in the first post of this thread, correct?

Yes. I upload any new releases to the same Google Drive link.

When you start to configure the KIRA, you may find its IP address is 192.168.1.31 rather than 192.168.1.32 as shown in the user guide.

I’m happy to report this plugin is working like a champ! Thanks for creating it!

And I’m happy to hear that you’re happy. Thanks for the feedback.

Don’t forget to click the Backup button when you’ve got your codes learned or converted. The plugin has never lost any of my codes but I have been known to delete them by mistake. ;D

just received mine and will start installing it ASAP ;D

By the way the only thing that tripped me up is that “universal IR wand” thingy that plugs in the front–that’s more of an “antenna” than an “external receiver”. Select “Use built in IR receiver” whether or not you use it.

Good luck!

By the way the only thing that tripped me up is that “universal IR wand” thingy that plugs in the front–that’s more of an “antenna” than an “external receiver”. Select “Use built in IR receiver” whether or not you use it.

Good luck![/quote]

That’s because it is an IR Emitter not a Receiver. They really should explain that in the documentation.

Rex, I’ve been doing some experimentation on how much the IR timings vary because I was curious if the compressed “short-long” approach could be improved upon. I tossed together a crude piece of code which takes a number of samples and compares the max/min for each time slice and measures how far apart they are.

$ nc -w 5 -l -u 65432 | ./timings.py 
0.23
$ nc -w 5 -l -u 65432 | ./timings.py 
0.25
$ cat timings.py 
#!/usr/bin/env python
import sys

def main():
    data = sys.stdin.read()
    timings = []
    for line in data.splitlines():
        timings.append([int(x, 16) for x in line.split()[2:]])
    numEntries = len(timings[0])
    maxVals = []
    minVals = []
    for i in range(numEntries):
        maxVals.append(max([x[i] for x in timings]))
        minVals.append(min([x[i] for x in timings]))
        #print maxVals
        #print minVals
    deviations = [round(float(x[0] - x[1]) / x[1], 2) for x in zip(maxVals, minVals)]
    print max(deviations)

if __name__ == "__main__":
    main()

After wandering around my living room and mashing buttons on my remote several dozen times to measure timings anywhere from 2 inches to 20 feet, I’m pretty sure that the codes don’t vary by more than 25% (discounting outliers of course). If that’s true, the kira plugin could possibly be revised to store actual (or averaged) values from the kira unit and then compare a new code vs. a learned code something along the lines of abs((ref - new) / ref) < .25 for each time slice.

For my purposes the Short-Long approach is probably adequate since I’m not storing terribly many codes, but I saw how others on this thread were interested in re-broadcasting learned codes.

Anyways, food for thought.

Thanks for that, @SM2k.

I found significant variation in timings with some remotes at different distances. It may be related to the IR power. I used the short/long approach to avoid any need to tune to suit a specific remote. It works quite reliably if the IR codes are not too short.

There’s always room for improvement, though, so I’ll add it to the possible upgrades list.

Wow, just got a quote back from Keene for a worldwide single Kira IR and they want almost $150 USD for one shipped to California. Too much for my wants. So that sucks, guess I dont get to play. Hopefully I can find something else more reasonably priced.

Hi Rex,

I just got Kira128 and installed your Plugin for IRTx and IRRx for test with VeraLite. I can learn IR and use it for IR Tx even IR Rx to trigger the scene. All are configured within your PlugIn. Excellent :slight_smile:

Now I can send IR code to control my Onkyo AV Amp, MediaPlayer and Logitech SqueezeBox but fail to control my LG 2012 TV model which is LM8600 (learnt its IR but execute test code with no response). I found the documentation of its Prono Code from RC: LG 2012 Televisions from Peter Tingle that I want to try to import its Prono Code for one more test. However, I don’t know how to use it (always imvalid) and whether it may have some problem for LG IR code pattern for Kira. Your help will be greatly appreciated. Thanks.

Best regards,
Fai

Hi Fai,

Please post the KIRA code and Pronto code for the same one of your commands that doesn’t work.

Hi Fai,

After looking at the Pronto codes in the PDF you posted, I can see why you cannot import them. They all have a dummy repeat code on the end which confuses the plugin’s Pronto import code. I’ve modified the code so it should ignore this. Try the attached files to see if they help.

Thanks, Rex :slight_smile: I install the XML you attached. I found Prono code for PowerOn from pdf can be imported without error and exactly same as the learn code from your Plugin. It still can’t control LG TV PowerOn. I am concerned if Kira issue intead of your Plugin.

Btw, I also found so many random IR code detected in Kira (from IR input via external IR Receiver) when my living room’s CFL is turned on (interfence/noise is very serious). Once I turn it off, Kira IR input goes normal but LGTV IR codes (I am using it as IR Code Tx) still didnt work. Anything I can provide for your diagnosis. For Java program, I found the same Prono code. But whe I open Java program then close, I found Kira becomes unstable with your Plugin. No IR Tx or Rx until unplug Kira’s power then plug it again then reload vera. Mostly of time it can resolve the problem. Sometime, I need to reset Kira. That’s so trouble. I am running version 1.8j and I want to upgrade it to 1.9 which can control Air Condition using long code. Did you try it?

Best regards,
Fai

Hi, Fai.

Does your TV recognize any codes if you send them from the java program? The codes don’t look that unusual. I have no idea why they don’t work but ones for other devices do.

Anything I can provide for your diagnosis.
If you set KiraTx's [b]Debug[/b] variable to 1, restart and try sending the code, there will be some additional messages in [i]LuaUPnP.log[/i] showing the code being sent. Check this against what the code should be and/or post it.
But whe I open Java program then close, I found Kira becomes unstable with your Plugin.
That doesn't surprise me. The plugins assume they have exclusive access to KIRA.
I am running version 1.8j and I want to upgrade it to 1.9 which can control Air Condition using long code. Did you try it?
No I didn't. Neither of the plugins have any arbitrary limits on code length as far as learning, storing, recognition and transmission but long codes will be truncated when displayed on the [b]Control[/b] tab.

Some of my A/V equipment requires an IR code to be sent several times in succession–even if it’s a valid code. I’ve tested sending codes to some devices and they simply ignore a single burst. that could perhaps be the issue at foot?

Hey Rex, I have an unrelated question about the behavior of the KiraRx plugin. Does an event get fired for every time a code is received or only when a new code is seen? I’m trying to control my Sonos (which has no IR capability) using this plugin and it seems the fast forward button only works once in a row (even if the next time I press it is several minutes later). It appears that I need to hit (e.g.) the play button before I can use the ff button again. Just trying to make sure I’m not about to create a workaround when the real issue is a flaky network or something. :slight_smile: