Foscam: Recommended Model

@thinklarge - Yes, I do have a version of the Local IP version working. It’s a more simplified controller and lacks some of the features of the Public IP version - primarily in that it cannot know the device’s alarm state. I spent a lot of time trying to get that part added, but I just don’t think it’s currently possible (would love to be proven wrong).

Before the device controller is made available, I’m waiting on having proper approval. I’m still waiting to hear back (submitted 7/10).

1 Like

@imbrian Are you going to open source that code? I’d like to read through it when you get it through the approval process if you don’t mind. I’m facinated by some of the work you done in this space. It was interesting for me to see how insecure the foscam actually is in that you have to pass user cridentials un-encrypted over the LAN when executing a command. Yikes!

Do you realize how many systems send unencrypted passwords over a local network? All of them. Basic Authentication is just encoding the password not encryption. The reason you want to have local access to the cameras is that you dont have to port forward your cameras to the world.

I will open source it, yes. I’m just waiting for approval from ST first. Pretty much everything I do that’s worth sharing (and is shareable) will be on my github page.

Yeah, the GET params for passwords is about as insecure as you can get. I was happy to close that port and spam my credentials only internally. Even at the cost of some functionality.

2 Likes

Thanks. Yeah I didn’t want to open any ports on my camera, I just don’t trust Foscam with security. I think the password length was capped at 12 characters. And there are a few news stories about people’s cameras getting hacked as well. I’ll keep an eye out for the LAN solution.

it already exists. See my generic camera device and just need the local ip, port and path to the image.

Just got my hub and I’ve got this up and running on my Foscam, I can snap photos in the app and it works! Woo awesome work!

So, my understanding is that the SmartApp simply disables/enables the Foscam’s built-in alarm email/ftp setting based on presence?

Is there no way for the Foscam to alert me of motion via Smartthings? but I can get a motion detector and have that alert me and do a photo burst?

I’ve set this up and can snap pictures but is there anyway to actually watch the video? Or do I need to get a separate app for that?

I am getting this error:

groovy.lang.MissingMethodException: No signature of method: script1431463581333854463017.metadata() is applicable for argument types: (script1431463581333854463017$_run_closure1) values: [script1431463581333854463017$_run_closure1@ec856a6]
Possible solutions: getMetadata(), getState(), setState(java.lang.Object), metaClass(groovy.lang.Closure)

Any suggestions?

Are you trying to create a device type and getting the error?

I figured it out, I was creating a smart app instead of a device.

thank you

1 Like

@imbrian thank you so much for your Foscam app. I have been using it for months successfully. So much so, that I decided to add another foscam to the fold. What I have discovered though is that the instances that I had already attached are still working fine, although when I try to change any settings in the ST Android interface, I get “Sorry, but there was an unexpected error”. When I try to add a new instance of your app I get the same error. So I tried multiple times and got the same error.

Interestingly enough, in the “My Apps”, I now have 6 instances of “Secure My Foscam” as evidence of the failed attempts.

When I try to add it through the IDE I received this error "grails.validation.ValidationException: Validation Error(s) occurred during save():

  • Field error in object ‘physicalgraph.device.Device’ on field ‘name’: rejected value [null]; codes [physicalgraph.device.Device.name.nullable.error.physicalgraph.device.Device.name,physicalgraph.device.Device.name.nullable.error.name,physicalgraph.device.Device.name.nullable.error.java.lang.String,physicalgraph.device.Device.name.nullable.error,device.name.nullable.error.physicalgraph.device.Device.name,device.name.nullable.error.name,device.name.nullable.error.java.lang.String,device.name.nullable.error,physicalgraph.device.Device.name.nullable.physicalgraph.device.Device.name,physicalgraph.device.Device.name.nullable.name,physicalgraph.device.Device.name.nullable.java.lang.String,physicalgraph.device.Device.name.nullable,device.name.nullable.physicalgraph.device.Device.name,device.name.nullable.name,device.name.nullable.java.lang.String,device.name.nullable,nullable.physicalgraph.device.Device.name,nullable.name,nullable.java.lang.String,nullable]; arguments [name,class physicalgraph.device.Device]; default message [{0} cannot be null]

Do you know what might be the problem, or should I contact ST support?

Ben

Hi @benzyne - I’m not familiar with that error. Very strange. You’ve entered all applicable fields? I can only assume it was a ST hiccup. Can you try again?

Hi @imbrian, I don’t even get into a place where I can enter any data into the fields. It crashes right away. I’ll check with ST support. THANKS FOR YOUR QUICK RESPONSE!

@imbrian I just thought I’d update you on my findings.The problem is the recent Android app. I was having a problem getting the Media Renderer app working as well, and someone else indicated that if I back date to an earlier version of the Smartthings App that I could use the Media Renderer app properly. I figure I’d try your app as well in the back dated state and was able to make all of the necessary changes and get rid of the extra instances.

Hey @benzyne - thanks for the update!