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("/")