From: Jim D. <ji...@du...> - 2012-12-16 17:25:02
|
On 12/15/2012 08:22 PM, Dustin Robinson wrote: >> > I am unsure how to make this concept scalable to a larger number of cameras and motions sensors without manually duplicating the code. I suspect the fact that you are putting code into a Generic_Item will help a great deal here. What you want to do is to start extending Generic_Item into new classes for what you want to do for Zoneminder. Think about creating a ZoneMinder_Item extended from Generic_Item, the creating specific classes for specific camera requirements form ZoneMinder_Item. Then, mutiple cameras are basically individual instantiations (objects) of your ZoneMinder_Item classes. > > I am using the motion sensors to control lighting as well as the cameras. I am currently utilizing tie_items to tie the motion sensor to the camera Generic_Item. This creates fairly long Zoneminder events because I don't want my lights turning off on me while im still in the area. This isn't a big problem but i was wondering if I should I keep on this concept or change the motion sensors to on only mode and use set_with_timer for lighting and cameras? > You probably want to consider tieing this into LOMP concept such that your ZoneMinder_Item can be used to trigger Light_Item in the same way as Motion_Item and Presence_Item. > If there is something I should know or something that i don't even know I don't know could you please point me in a general direction. I don't mind tinkering, researching and figuring things out. This is after all just a hobby for me. > > > #noloop=start > > ## General Settings > my $zm_server = "localhost"; # IP or Host of server running zmtrigger > my $zm_server_port = "6802"; # Port assigned to zmtrigger > my $zm_event_duration = 10; # Duration of event > my $zm_event_max_duration = 60; # Maximum duration of event > my $zm_event_score = 255; # Score of trigger > my $zm_event_description = "MisterHouse"; # Description of trigger > The above items are great candidates to be stored in mh.ini, which ZoneMinder_Item would reference. > > ## Camera info (eventually this should be list of cameras) > > my $camera_name = "Poarch"; > my $camera_id = 10; > > > ## Create Generic_Item for cameras > > $camera_poarch = new Generic_Item; > $camera_poarch->{camera_id} = "10"; > set_states $camera_poarch split ',', "on,off"; > > > ## Create Socket_Item to connect to zmtrigger > > $zm_connect = new Socket_Item( undef, undef, "$zm_server:$zm_server_port" ); > All of this stuff could be buried inside your ZoneMinder_Item which is an extension of Generic_Item. $camera_porch = new ZoneMinder_Item("Porch Camera", 10); Start studying other "Items", like Light_Item, Motion_Item, etc. Regards, Jim |