Ryan Roth wrote:

If you want this to go into the rel-1 you need to add a feature request.
http://sourceforge.net/tracker/?func=add&group_id=46652&atid=446898

For somebody who claims that they don't know Python, you do a pretty
good job :-)

Duncan

> Fixed some typos
> 
> 
> ------------------------------------------------------------------------
> 
> import os  
> import plugin
> import config
> 
> from item import Item
> 
> class PluginInterface(plugin.MainMenuPlugin):
>     """
>     Home Automation Plugin
>     
>     Activate:
>     plugin.activate('home_automation')
>     
>     This plugin is for controlling home automation items, such as X10 devices.
>     It uses external programs to control the hardware.
>     
>     Configuration is as follows:
>     ('ROOM NAME/LOCATION'('FUNCTION','COMMAND TO RUN'))
> 
>     In the following example I demonstrate using this plugin with the heyu 
> application.
> 
>     Example local_conf.py configuration:
> 
>      AUTOMATION_ITEMS = [('Living Room',
>                          (
>                          ('Lights',('On','heyu on a2','Off','heyu off 
> a2','Brighten','heyu bright a2 1','Dim','heyu dim a2 1')),
>                          ('TV',('On','heyu','Off','heyu'))
>                          )),
>                          ('Porch',
>                          (
>                          ('Light',('On','heyu','Off','heyu'))
>                          ))]
>     
>  
>     """
> 
>     def __init__(self):
>         if not hasattr(config, 'AUTOMATION_ITEMS'):
>             self.reason = 'AUTOMATION_ITEMS not defined'
>             return
>         plugin.MainMenuPlugin.__init__(self)
> 
> 
>     def items(self, parent):
>         return [ HomeAutomationMainMenu(parent) ]
> 
> class AutomationItem(Item):
>     """
>     Item for the menu for one room
>     """
>     def __init__(self, parent):
>         Item.__init__(self, parent)
>     
>     def actions(self):
>         """
>         return a list of actions for this item
>         """
>         items = [ ( self.getroomdevices, _('Room Items') ) ]
>         return items
> 
>     def getroomdevices(self, arg=None, menuw=None):
>         room_devices = []
>         for device in self.room_items:
>             room_device = RoomDevice(self)
>             room_device.name = device[0]            
>             room_device.functions = device[1]
>             room_devices += [ room_device ]
>         room_devices_menu = menu.Menu(_('Home Automation Devices'), 
> room_devices)
>         menuw.pushmenu(room_devices_menu)
>         menuw.refresh()
> 
> class RoomDevice(Item):
>     """
>     Item for the menu for one room
>     """
>     def __init__(self, parent):
>         Item.__init__(self, parent)
> 
>     def actions(self):
>         """
>         return a list of actions for this item
>         """
>         items = [ ( self.getdeviceoptions, _('Device Options') ) ]
>         return items
> 
>     def getdeviceoptions(self, arg=None, menuw=None):
>         device_options = []
>         device_name = []
>         device_index = 0
>         for option in self.functions:
>             device_option = DeviceOptions(self)
>             device_index = device_index + 1
>             if device_index % 2:
>                 device_name = option
>             else: 
>                 device_option.name = device_name
>                 device_option.cmd = option
>                 device_options += [ device_option ]
>         device_options_menu = menu.Menu(_('Device Options'), device_options)
>         menuw.pushmenu(device_options_menu)
>         menuw.refresh()
> 
> class DeviceOptions(Item):
>     """
>     Item for the menu for one room
>     """
>     def __init__(self, parent):
>         Item.__init__(self, parent)
> 
>     def actions(self):
>         """
>         return a list of actions for this item
>         """
>         return [ ( self.runcmd , _('Run Command') ) ]
>         
>     def runcmd(self, arg=None, menuw=None):
>         """
>         Run Command
>         """
>         os.system(self.cmd)
> 
> class HomeAutomationMainMenu(Item):
>     """
>     this is the item for the main menu and creates the list of rooms.
>     """
>     def __init__(self, parent):
>         Item.__init__(self, parent, skin_type='homeautomation')
>         self.name = _('Home Automation')
>     
> 
>     def actions(self):
>         """
>         return a list of actions for this item
>         """
>         items = [ ( self.create_automation_items_menu , _('Home Automation' 
> )) ]
>         return items
> 
>     def create_automation_items_menu(self, arg=None, menuw=None):
>         automation_items = []
>         for room in config.AUTOMATION_ITEMS:
>             automation_item = AutomationItem(self)
>             automation_item.name = room[0]
>             automation_item.room_items = room[1]
>             automation_items += [ automation_item ]
>         if (len(automation_items) == 0):
>             automation_items += [menu.MenuItem(_('No Home Automation items 
> found'), menuw.goto_prev_page, 0)]
>         automation_items_menu = menu.Menu(_('Home Automation'), 
> automation_items)
>         menuw.pushmenu(automation_items_menu)
>         menuw.refresh()


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to