Advertisement
black0r1337

Untitled

Jan 13th, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. import java.util.concurrent.locks.ReentrantLock
  2.  
  3. val String filename = "trockner_neu.rules"
  4.  
  5. var ReentrantLock finishLock = new ReentrantLock()
  6.  
  7. val Number MODE_OFF = 0
  8. val Number MODE_STANDBY = 1
  9. val Number MODE_ACTIVE = 2
  10. val Number MODE_FINISHED = 3
  11.  
  12. rule "Trockner Überwachung: Init"
  13. when
  14. System started
  15. then
  16. createTimer(now.plusSeconds(170)) [|
  17. if (WK_Trockner_OpState == NULL) WK_Trockner_OpState.postUpdate(MODE_OFF)
  18. // if (WK_Trockner_OpState == NULL) WK_Trockner_OpState.postUpdate(MODE_OFF)
  19. ]
  20. end
  21.  
  22. /**
  23. * Trockner
  24. * Aus: 0,05 - 0,07 W
  25. * Standby/Fertig: 4,3W
  26. * Aktiv: bis 2300W (bisher gesehener Mindestwert 4,55W)
  27. */
  28. rule "Trockner Überwachung: Verbrauchszuordnung"
  29. when
  30. Item WK_Trockner_Power changed
  31. then
  32. //logInfo(filename, "Trockner Überwachung: Verbrauchszuordnung")
  33. if (WK_Trockner_Power.state < 2.1) WK_Trockner_OpState.postUpdate(MODE_OFF)
  34. else if (WK_Trockner_Power.state > 50) {
  35. WK_Trockner_OpState.postUpdate(MODE_ACTIVE)
  36. trockner_dummy_status.sendCommand(ON)
  37. }
  38. else if (WK_Trockner_Power.state < 20) {
  39. if (WK_Trockner_OpState.state == MODE_OFF) WK_Trockner_OpState.postUpdate(MODE_STANDBY)
  40. else if (WK_Trockner_OpState.state == MODE_ACTIVE) {
  41. finishLock.lock()
  42. try {
  43. // Debounce for 30 seconds
  44. Thread::sleep(30000)
  45. if (WK_Trockner_Power.state < 20) WK_Trockner_OpState.postUpdate(MODE_FINISHED)
  46. } finally {
  47. finishLock.unlock()
  48. }
  49. }
  50. }
  51. end
  52.  
  53.  
  54.  
  55. rule "Trockner Überwachung: Benachrichtigung"
  56. when
  57. Item WK_Trockner_OpState changed
  58. then
  59. if (WK_Trockner_OpState.state == MODE_FINISHED && trockner_dummy_status.state == ON) {
  60. pushover("asea77kmdhaaaiufkr47dfdcem722c", "upHCm2YPZbYs9MWVuBEXWPEBhkxfwK", "Trockner: Fertig !")
  61. trockner_dummy_status.sendCommand(OFF)
  62. }
  63. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement