I written enough in other languages to be able to BS my way through 
others :)


Duncan Webb wrote:
> 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
>
>   

-------------------------------------------------------------------------
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