ISY994i plugin crashes Fire Tablet

I have been testing with this great software. I would love to create a tablet for my home command system. I use my universal devices ISY994i for 90% of all my automation. So it must work with it.
I downloaded the plugin created on this group. It works in the designer perfectly. I tried to restore the working hrp into the app on my Fire 10 tablet and the app just crashes. If I use another plugin it works fine, for example the ecobee plugin works fine.
I tried the ISY994i plugin on an iPhone and it seems to work on it.
Hopefully this has not been discussed before. I search for it for a couple of days and could not find this issue.
Thanks Jeff

Just to clarify, a custom HRP w/ ecobee created with the Designer loads fine on your Fire 10?

I want to confirm it’s not the publishing process crashing the app. If it is in fact the ISY that’s triggering the crash, would you mind emailing me the project?

I don’t have a Fire 10 but I’ve got an old Fire 7" that I can test.

Yes, only if the ISY is in the devices does it crash. If the script is in the HRP it does not crash.
What email do I send it to? Will is still be a legit test if I take my ISY setting out before sending it to you?

Send it to support@thehomeremote.com You can change whatever you like. Just send me a project that is crashing. I won’t be making any changes in your project. All I’ll be doing is loading exactly what you send me on my Fire 7 & see what it does. If it crashes, I’ll hook up my debugger & see why it’s crashing.

Sent to you.
So I have more info as well since you made me think about the data for login. If I strip my login info from the ISY994i device. It does not crash. It only crashes if I have my login info and device set. But this same exact hrp will work on my iphone.

Hopefully more helpful info. If I load the HRP with no IP address it will not crash. I then configure the IP and password for the ISY994i on the fire tablet. The program then crashes as soon as I save the settings.
My ISY firmware level 5.0.16C

What if you set it to an IP address that isn’t on your network?

I do not own an ISY so my connections time out. Your project is not crashing on any of my devices, my Galaxy S9 & Fire 7. It’s beginning to sound like I may need access to an ISY to test. If you want to set up port forwarding in your router to enable remote access I’d be happy to dig into this more. Right now though, it’s not sounding like there’s much else I can do to help. At some point, I would like to buy an ISY so I can add an official integration for it.

I set it to an available IP on my network and I get no host found. I set it to a server I have on the network and I get the same crashing. So maybe you could set it to a valid IP on your network and see if you get the same results. Makes me think it is crashing on an unsuccessful login?

It is crashing for me now too. I did as you suggested & changed the IP address another device on my network (my Yamaha AVR) & it is crashing now about 15 seconds after opening. I’ll take a look.

Did you set the encoded username:password?

It probably is a login issue but the crash needs to be fixed.

In your project, you set the EncodedUsernPass to True. That is not a boolean. That is supposed to be an encoded base 64 string of your “username:password”. That’s probably the reason for the crash.

I had tried True, False and blank in my previous test. All crashed the same with the correct IP address set.

Did you see my latest reply?

I’m surprised the ISY is even working without that. I think this is require for device feedback & commands to work.

Here are some online tools you use to generate the “username:password”

https://www.blitter.se/utils/basic-authentication-header-generator/

Holy moly that worked!! Crazy that it works on everything else without that setting. Maybe andriod OS passes the creds differently or maybe IOS and windows are encoding it before sending.
Anyway thanks a bunch. I think if anyone really put the time into this plugin maybe using the ISY portal would be the best choice. It is the same portal that Alexa and other services use to interface with ISY devices.

There is a memory leak in the current ISY plugin code. It’s currently possible for the leftover variable to grow unintentionally very rapidly. There’s code that appends data to this string variable when an incomplete event is received (a message that doesn’t contain the <Event> XML tags). That can happen when new users try to set up the plugin using an invalid authentication header. It can also happen when there’s no data in read buffer.

I added a log statement to the end of the onPoll that outputs the current size of leftover. In just a few seconds we begin receiving OutOfMemoryException.

Here’s the fix. We should only be appending the new data that was received. If we add our data variable to it like we were before, then we got duplicate data.

Here’s the new script:
Isy994i_72.plugin (54.4 KB)

Great find. I will test it out. Can not say enough about your support. Thank you so much.

1 Like

Good catch. I am a hobby programmer at best. Ive been wanting to redo a few things with the ISY changes and Homeremote changes but have little free time these last 6 months. The changes to amazon alexa keeps messing up my perfect home automation and I have had to focus on those issues first as most everyone uses voice in my house to control everything.

As for logging in with the plugin it uses the actual password and username to get devices and work but needs the encrypted username and password for subscribing for the updates(or the other way around, been some time since I wrote it). That is why it may have appeared to work and log in with the wrong encrypted credentials.

Hi James! Welcome to the community! It’s been a little while!

Thanks for the explanation on the credentials. I thought it was something like that.

Would you mind creating a post in this new forum for your ISY plugin?

I’d like to get everyone using this forum if possible. I still find myself sharing a link to your ISY plugin quite a bit so it’d be nice to get that one moved over to here.

Instead of sharing the entire HRP file just post the attached plugin file. This includes that bug I fixed yesterday along with “DefaultSettings”. That’s what the new import utility uses to kind of simplify the process.
Isy994i-v8_0.plugin (54.7 KB)

Is there a tutorial to create the plugin file type from an hrp file? When I have the time would like to update the other plugins I have created.

Also Is there a link to the latest changes in home remote so I can also update my older UI to work with the newer Version? I seem to get a few communication errors and I need to track them down. Several of my hardware devices have had firmware updates breaking control of them with other software so just trying to get the latest updates before making the needed changes.

Thanks Again for your hard work! Hopefully I get some free time soon to catch up with all the ISY changes and Home remote changes!

Yes. I did post about this last spring. There isn’t a whole lot to it. Really you just copy the file from the Scripts directory into a folder on your desktop or hard-drive. Then add the “.plugin” extension.

https://groups.google.com/g/thehomeremote/c/LTCVwaeNyVk/m/x5DWeQnhBAAJ