Exemplo n.º 1
0
def index():
    plugin_infos = list()
        
    for plugin_name, info in PLUGINS_CONFIGS.items():
        pg_mod = get_plugin(plugin_name)
        pg = dict(name=plugin_name,
                  title=info.get('title', plugin_name.capitalize()),
                  items=list())
                  
        if "sensors" in info:
            for item in info["sensors"]:
                pg["items"].append(pg_mod.get_value(plugin_conf=info, **item))
        
        plugin_infos.append(pg)
    
    switches = app.config.get("switches", None)
    # let's update switch states
    if switches is not None:
        for switch_val in switches:
            stype = switch_val.get("type")
            if stype == 'plugin':
                plugin = plugin_manager.get_plugin(switch_val["plugin"])
                print plugin
                if hasattr(plugin, "get_value"):
                    switch_val["state"] = plugin.get_value(switch_val)
        
    return dict(switches=switches,
                cameras=app.config.get("cameras", None),
                plugin_infos=plugin_infos)
def switch(switch_num, action="toggle"):
    switch_val = app.config["switches"][int(switch_num)]
    if not "state" in switch_val:
        switch_val["state"] = 0

    if action == "toggle":
        action = switch_val["state"] and "off" or "on"
    stype = switch_val.get("type")

    if stype == "command":
        call(switch_val["commands"][action])

        if action == "on":
            switch_val["state"] = 1
        if action == "off":
            switch_val["state"] = 0

    elif stype == "plugin":
        plugin = plugin_manager.get_plugin(switch_val["plugin"])
        plugin.switch(switch_val, action=action)

    redirect("/")