def load_sensors(self): if "sensors" not in config: print("can not find the sensors segment in setting.cfg") return all_sensors = config["sensors"] for sensor_id in all_sensors: if sensor_id not in self.__sensors__: sensor_object = all_sensors[sensor_id] if "kind" in sensor_object: sensor_object_kind = sensor_object["kind"] if sensor_object_kind in self.__models__: new_sensor = SensorLogic.copy_with_info(self.__models__[sensor_object_kind], sensor_id, sensor_object["name"]) self.__sensors__[sensor_id] = new_sensor else: new_sensor = Sensor(sensor_object_kind, sensor_id, sensor_object["name"]) if sensor_object["type"] is "action": on_action = SAction("on") off_action = SAction("off") new_sensor.add_action(on_action) new_sensor.add_action(off_action) else: value_property = SProperty("value", 0, None, 0) new_sensor.add_property(value_property) self.__sensors__[sensor_id] = new_sensor else: print("{0:s} sensor in setting.cfg lost kind property".format(sensor_id))
def add_action_sensor(self, sensor_kind, sensor_id, sensor_name, action_function=None): if sensor_id in self.__sensors__: raise ValueError("{0} have been added".format(sensor_id)) return new_sensor = Sensor(sensor_kind, sensor_id, sensor_name) action_on = SAction("on") action_off = SAction("off") new_sensor.add_action(action_on) new_sensor.add_action(action_off) self.__sensors__[sensor_id] = new_sensor if action_function is not None: self.__actions__[sensor_id] = action_function