25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

44 satır
1.1KB

  1. import time
  2. from flask_classy import route
  3. from modules import DBModel, cbpi
  4. from modules.core.baseview import BaseView
  5. class Sensor(DBModel):
  6. __fields__ = ["name","type", "config", "hide"]
  7. __table_name__ = "sensor"
  8. __json_fields__ = ["config"]
  9. class SensorView(BaseView):
  10. model = Sensor
  11. cache_key = "sensors"
  12. def post_post_callback(self, m):
  13. cbpi.init_sensor(m.id)
  14. def post_put_callback(self, m):
  15. cbpi.stop_sensor(m.id)
  16. cbpi.init_sensor(m.id)
  17. def pre_delete_callback(self, m):
  18. cbpi.stop_sensor(m.id)
  19. @cbpi.initalizer(order=1000)
  20. def init(cbpi):
  21. print "INITIALIZE SENSOR MODULE"
  22. SensorView.register(cbpi.app, route_base='/api/sensor')
  23. SensorView.init_cache()
  24. cbpi.init_sensors()
  25. @cbpi.backgroundtask(key="read_passiv_sensor", interval=5)
  26. def read_passive_sensor():
  27. """
  28. background process that reads all passive sensors in interval of 1 second
  29. :return: None
  30. """
  31. for key, value in cbpi.cache.get("sensors").iteritems():
  32. if value.mode == "P":
  33. value.instance.read()