Go pick up your copy of version 2.201 with support for plugins and Foscam IP Camera support.
Remember, this is a beta release; if you find any problems please report them here.
There is a new Android app (also in beta) to go along with this release. This new app sports a new navigation structure (I hated the Facebook style slide out!) I'd love to hear your feedback on the new menu as well as any problems issues you experience with the app.
Release 2.201 (Beta with PLUGIN framework & Foscam IP Camera Support)
- 191 Views
- Last Post 25 February 2013
I believe you need "ProcessStartInfo.FileName" instead of "ProcessStartInfo.Filename"
Thanks for the info. The code (below) runs without showing anything in the log file but nothing happens. Everything works if I put the vlc command into a shortcut (.lnk) file and execute it by clicking on it.
using System;
using System.Collections.Generic;
using System.Text;
using MLS.ZWave.Service.Rules;
using MLS.ZWave.BusinessObjects;
public class Recordxmin : ScriptBase, ScriptInterface {
///
/// ALWAYS MAKE COPIES OF SCRIPTS YOU INTEND TO CUSTOMIZE OR YOUR CHANGES
/// COULD BE LOST.
///
public void runScript() {
try {
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe";
psi.Arguments = "http://192.168.1.79:1111/videostream.asf?user=user&pwd=12345 --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=D:\IPCamera-1test.asf vlc://quit";
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
System.Diagnostics.Process.Start(psi);
} catch (Exception ex) {
// Log the exception here
var message = ex.Message;
}
}
}
I've also tried writing code to just execute the .lnk but that doesn't seem to work either. Log file says: "Script failed to compile with error: 'System.Diagnostics.ProcessStartInfo' does not contain a definition for 'Filename' and no extension method 'Filename' accepting a first argument of type 'System.Diagnostics.ProcessStartInfo' could be found (are you missing a using directive or an assembly reference?) on line 16."
using System;
using System.Collections.Generic;
using System.Text;
using MLS.ZWave.Service.Rules;
using MLS.ZWave.BusinessObjects;
public class Recordxmin : ScriptBase, ScriptInterface {
///
/// ALWAYS MAKE COPIES OF SCRIPTS YOU INTEND TO CUSTOMIZE OR YOUR CHANGES
/// COULD BE LOST.
///
public void runScript() {
try {
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.ProcessStartInfo.Filename = "D:\VLCRecord.lnk";
System.Diagnostics.Process.Start(psi);
} catch (Exception ex) {
// Log the exception here
var message = ex.Message;
}
}
}
Looks like you need to break up your parameters.
psi.FileName = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe\" http://192.168.1.111:8000/videostream.asf?user=user&pwd=password --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=IPCamera-1test.asf vlc://quit";
I'm not familiar with VLC but I'm assuming all the http stuff is suppose to be the arguments. If so you should do this:
psi.FileName = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe";
psi.Arguments = "http://192.168.1.111:8000/videostream.asf?user=user&pwd=password --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=IPCamera-1test.asf vlc://quit";
-N
I see it in the logs in the rules section of the GUI.
Could you link a screen shot to it for me so I can see the exact message?
I see it in the logs in the rules section of the GUI.
Getting error codes: ";" expected and invalid expression term ":"
Where do you see that error at?
Getting error codes: ";" expected and invalid expression term ":"
using System;
using System.Collections.Generic;
using System.Text;
using MLS.ZWave.Service.Rules;
using MLS.ZWave.BusinessObjects;
public class Recordxmin : ScriptBase, ScriptInterface {
///
/// This script finds any node that is above 80% and sets it to 80%.
///
/// ALWAYS MAKE COPIES OF SCRIPTS YOU INTEND TO CUSTOMIZE OR YOUR CHANGES
/// COULD BE LOST.
///
public void runScript() {
try {
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe\" http://192.168.1.111:8000/videostream.asf?user=user&pwd=password --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=IPCamera-1_test.asf vlc://quit";
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
System.Diagnostics.Process.Start(psi);
} catch (Exception ex) {
// Log the exception here
var message = ex.Message;
}
}
}
Thanks. I'll give that a try.
psi.FileName = @"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" http://cameraip:port/videostream.asf?user=""&pwd="" --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=IPCamera-1test.asf vlc://quit";
Change that line to read:
[code]
psi.FileName = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe\" http://cameraip:port/videostream.asf?user=\"&pwd=\" --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=IPCamera-1test.asf vlc://quit";
[/code]
I was able to figure out how to do this by writing a batch file to execute VLC to record 30 second clips in the background via command line. You can also insert the command string into a shortcut .Lnk and execute it that way. .
MadSci, would you mind sharing your patch script that you used to start the recording using VLC?
I used this in a link ".lnk" file as a shortcut. It records for 15 sec minimized in the tray. It recorded the file in the same directly that the .lnk was in.
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" http://cameraip:port/videostream.asf?user=""&pwd="" --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=IPCamera-1test.asf vlc://quit
VLC has a pretty extensive command link scripts which I don't understand. Maybe another user can help.
I'm trying to use this in a script, below. Any idea what I'm doing wrong? The script runs in InControl with no errors but nothing happens. The same .exe works as a .lnk.
using System;
using System.Collections.Generic;
using System.Text;
using MLS.ZWave.Service.Rules;
using MLS.ZWave.BusinessObjects;
public class Recordxmin : ScriptBase, ScriptInterface {
///
/// This script finds any node that is above 80% and sets it to 80%.
///
/// ALWAYS MAKE COPIES OF SCRIPTS YOU INTEND TO CUSTOMIZE OR YOUR CHANGES
/// COULD BE LOST.
///
public void runScript() {
try {
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = @"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" http://cameraip:port/videostream.asf?user=""&pwd="" --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=IPCamera-1test.asf vlc://quit";
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
System.Diagnostics.Process.Start(psi);
} catch (Exception ex) {
// Log the exception here
var message = ex.Message;
}
}
}
I was able to figure out how to do this by writing a batch file to execute VLC to record 30 second clips in the background via command line. You can also insert the command string into a shortcut .Lnk and execute it that way. .
MadSci, would you mind sharing your patch script that you used to start the recording using VLC?
I used this in a link ".lnk" file as a shortcut. It records for 15 sec minimized in the tray. It recorded the file in the same directly that the .lnk was in.
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" http://cameraip:port/videostream.asf?user=""&pwd="" --qt-start-minimized --no-qt-notification --run-time=15 :demux=dump :demuxdump-file=IPCamera-1_test.asf vlc://quit
VLC has a pretty extensive command link scripts which I don't understand. Maybe another user can help.
i'm shocked win 8 is tolerating it ;) ]
LOL - that made me laugh
Ryan - I have Toshiba cameras all over the place. I know the camera URL of the jpegs it creates. I'd like to write a plugin for them. Where can I get the plugin framework/docs?
Thanks.
-Alex
Nevermind this post - I just noticed the new Plugins forum.
-Alex
4 cams are working fine [and under win 8 - i'm shocked win 8 is tolerating it ;) ]
Thanks. I found out the issue, there were some ghost services running in the background, presumably an old version, so the GUI showed the new version but I suspect I was still running the old service. I killed them all off and re-installed and everything looks good now.
Thanks for your help.
Could you confirm the version you are seeing? It'll show up in the title bar and in the log file when you restart. The logs don't have the new items I added today, so it appears that you didn't actually get updated.
I've updated my version and here is snip of my log file:
2/9/2013 4:54:47 PM: Cloud: Attempting to connect to cloud server over chanId: 53de627f-9d31-4872-8f8f-c96625e2ed1e
2/9/2013 4:54:47 PM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action1 action)<br> at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127<br>2/9/2013 4:55:07 PM: Cloud: Attempting to connect to cloud server over chanId: 53de627f-9d31-4872-8f8f-c96625e2ed1e<br>2/9/2013 4:55:07 PM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action
1 action)
at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127
2/9/2013 4:55:23 PM: Command has been queued up for sleeping device 5
2/9/2013 4:55:26 PM: Command has been queued up for sleeping device 5
2/9/2013 4:55:27 PM: Cloud: Attempting to connect to cloud server over chanId: 53de627f-9d31-4872-8f8f-c96625e2ed1e
2/9/2013 4:55:27 PM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action1 action)<br> at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127<br>2/9/2013 4:55:29 PM: Command has been queued up for sleeping device 5<br>2/9/2013 4:55:33 PM: Command has been queued up for sleeping device 6<br>2/9/2013 4:55:37 PM: Command has been queued up for sleeping device 6<br>2/9/2013 4:55:39 PM: Command has been queued up for sleeping device 6<br>2/9/2013 4:55:47 PM: Cloud: Attempting to connect to cloud server over chanId: 53de627f-9d31-4872-8f8f-c96625e2ed1e<br>2/9/2013 4:55:47 PM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action
1 action)
at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127
2/9/2013 4:56:07 PM: Cloud: Attempting to connect to cloud server over chanId: 53de627f-9d31-4872-8f8f-c96625e2ed1e
2/9/2013 4:56:07 PM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action1 action)<br> at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127<br>2/9/2013 4:56:27 PM: Cloud: Attempting to connect to cloud server over chanId: 53de627f-9d31-4872-8f8f-c96625e2ed1e<br>2/9/2013 4:56:27 PM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action
1 action)
at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127
Still getting that error message, I can use the app remotely most of the time, even with these messages, so they don't actually appear to be having an affect on that.
No Z drive here either.
I get this error over and over in the log file as you can see.
Jon -
I'll be releasing a new beta update later this afternoon. When I do, I'd be interested in seeing your new logs. Hopefully the extra stuff I added will help track down the problem you are having.
I was able to figure out how to do this by writing a batch file to execute VLC to record 30 second clips in the background via command line. You can also insert the command string into a shortcut .Lnk and execute it that way. .
MadSci, would you mind sharing your patch script that you used to start the recording using VLC?
I'm using release 2.203 and although I did experience some issues initially as described above I did get it working, however the connection to the cloud and therefore connection to the app doesn't seem too reliable.
I've extracted an example of an error in the log file which has been there since the update.
2/9/2013 9:53:44 AM: Cloud: Attempting to connect to cloud server over chanId: [...]
2/9/2013 9:53:44 AM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action1 action)<br> at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127<br>2/9/2013 9:53:58 AM: Cloud: Cloud connected!<br>2/9/2013 9:53:59 AM: Cloud: Cloud connected!<br>2/9/2013 9:54:04 AM: Cloud: Attempting to connect to cloud server over chanId: [...]<br>2/9/2013 9:54:04 AM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action
1 action)
at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127
2/9/2013 9:54:24 AM: Cloud: Attempting to connect to cloud server over chanId: [...]
2/9/2013 9:54:24 AM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action1 action)<br> at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127<br>2/9/2013 9:54:44 AM: Cloud: Attempting to connect to cloud server over chanId: [...]<br>2/9/2013 9:54:44 AM: Error with Cloud Connection: Object reference not set to an instance of an object. at SocketIOClient.Client.On(String eventName, Action
1 action)
at MLS.ZWave.WCFService.InControlSocketClient.startSocketClient(String serverAddress) in z:\work\mls\MLS.ZWave.Controller\MLS.ZWave.WCFService\InControlSocketClient.cs:line 127
I get this error over and over in the log file as you can see.
.