def zone_tree_builder(o): zones = {} for z in o: zone = Zone(z["id"],z.get("name",None)) if z.has_key("parent"): path = z["parent"].split("/") zones[path[0]].insert_subzone(zone,path[1:]) else: zones[z["id"]] = zone devices = z.get("devices",[]) for d in devices: D = dynamic_import(d["type"]) device = D() device.initialize(d.get("cfg",{})) zone.add_device(d["name"],device) return zones
def _build_zones(self): z = Zone("home","Home") z1 = Zone("living","Living Room") sensor = TestSensor() sensor.initialize({"x":"y"}) actuator = TestActuator() actuator.initialize({"test_actions":{"update":{"x":"an int"}}}) z1.devices["test_sensor"] = sensor z1.devices["test_actuator"] = actuator z.insert_subzone(z1) self.facility.add_root_zone(z)