Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

77 Zeilen
1.9KB

  1. from modules.core.baseapi import Buzzer
  2. from modules.core.basetypes import Actor, KettleController, FermenterController
  3. from modules import cbpi
  4. from modules.core.proptypes import Property
  5. @cbpi.addon.actor.type("Dummy Actor")
  6. class Dummy(Actor):
  7. # Decorator to create a parameter based action
  8. @cbpi.addon.actor.action("Run until Temp reached", parameters={"t": Property.Text(label="Target Temp")})
  9. def check_sensor_value(self, t=1):
  10. def check(api, id, value):
  11. '''
  12. Background Prozess which checks the sensor value every second
  13. :param api:
  14. :param id:
  15. :param value:
  16. :return:
  17. '''
  18. while api.sensor.get_value(1) < value:
  19. api.sleep(1)
  20. api.actor.off(id)
  21. target_value = int(t)
  22. # Create notificaiton
  23. self.api.notify(headline="Waiting", message="Waiting for temp %s" % target_value)
  24. # Switch actor on
  25. self.api.actor.on(self.id, 100)
  26. # Start Background task
  27. self.api.start_background_task(check, self.api, id=self.id, value=target_value)
  28. def on(self, power=100):
  29. '''
  30. Code to switch on the actor
  31. :param power: int value between 0 - 100
  32. :return:
  33. '''
  34. print "ID %s ON" % self.id
  35. def off(self):
  36. print "ID %s OFF" % self.id
  37. @cbpi.addon.kettle.controller()
  38. class MyController(KettleController):
  39. def run(self):
  40. while self.is_running():
  41. print "HALLO"
  42. self.sleep(1)
  43. @cbpi.addon.fermenter.controller()
  44. class MyController2(FermenterController):
  45. def run(self):
  46. while self.is_running():
  47. print "HALLO"
  48. self.get_target_temp()
  49. self.sleep(1)
  50. @cbpi.addon.core.initializer(order=200)
  51. def init(cbpi):
  52. class MyBuzzer(Buzzer):
  53. def beep(self):
  54. print "BEEEEEP"
  55. pass
  56. cbpi.buzzer = MyBuzzer()