Guest User

Untitled

a guest
Jul 7th, 2020
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.90 KB | None | 0 0
  1. rule "load map neubau"
  2. when Item VT_loadMapNeubau received command ON
  3. then
  4. VT_Pause.postUpdate("OFF")
  5. VT_isMapNeubau.sendCommand("OFF")
  6. VT_isMapAltbau.sendCommand("OFF")
  7. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  8. mqttActions.publishMQTT("valetudo/rockrobo/custom_command","{\"command\": \"load_map\",\"name\": \"map_neubau\"}")
  9. end
  10. rule "load map altbau"
  11. when Item VT_loadMapAltbau received command ON
  12. then
  13. VT_Pause.postUpdate("OFF")
  14. VT_isMapNeubau.sendCommand("OFF")
  15. VT_isMapAltbau.sendCommand("OFF")
  16. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  17. mqttActions.publishMQTT("valetudo/rockrobo/custom_command","{\"command\": \"load_map\",\"name\": \"map_altbau\"}")
  18. end
  19. rule "check mqtt command status response"
  20. when Item VT_CommandStatus received update
  21. then
  22. logInfo("valetudo.rules", "MQTT command status response erhalten")
  23.  
  24. //example {"command":"load_map","message":"ok","error":null,"updated":1593074179125}
  25. var command = transform("JSONPATH", "$.command", VT_CommandStatus.state.toString)
  26. var message = transform("JSONPATH", "$.message", VT_CommandStatus.state.toString)
  27.  
  28. if (VT_loadMapAltbau.state.toString == "ON" && command == "load_map" && message == "ok") {
  29. logInfo("valetudo.rules", "Altbau erfolgreich geladen!")
  30. VT_loadMapAltbau.sendCommand("OFF")
  31. VT_isMapNeubau.sendCommand("OFF")
  32. VT_isMapAltbau.sendCommand("ON")
  33. }
  34. if (VT_loadMapNeubau.state.toString == "ON" && command == "load_map" && message == "ok") {
  35. logInfo("valetudo.rules", "Neubau erfolgreich geladen!")
  36. VT_loadMapNeubau.sendCommand("OFF")
  37. VT_isMapAltbau.sendCommand("OFF")
  38. VT_isMapNeubau.sendCommand("ON")
  39. }
  40. end
  41. rule "pause"
  42. when Item VT_Pause received command ON
  43. then
  44. logInfo("valetudo.rules", "Pause!")
  45. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  46. mqttActions.publishMQTT("valetudo/rockrobo/command","pause")
  47. end
  48. rule "resume"
  49. when Item VT_Pause received command OFF
  50. then
  51. logInfo("valetudo.rules", "Resume!")
  52. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  53. mqttActions.publishMQTT("valetudo/rockrobo/command","start")
  54. end
  55. rule "to dock"
  56. when Item VT_ZumDock received command ON
  57. then
  58. logInfo("valetudo.rules", "Zum Dock!")
  59. VT_Pause.postUpdate("OFF")
  60. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  61. mqttActions.publishMQTT("valetudo/rockrobo/command","return_to_base")
  62. end
  63. rule "stop"
  64. when Item VT_Stop received command ON
  65. then
  66. logInfo("valetudo.rules", "Zum Dock!")
  67. VT_Pause.postUpdate("OFF")
  68. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  69. mqttActions.publishMQTT("valetudo/rockrobo/command","stop")
  70. end
  71. rule "saugen"
  72. when Item VT_Saugen received command ON
  73. then
  74. if (VT_isMapAltbau.state.toString == "ON")
  75. {
  76. if (gAltbau.state.toString == "ON")
  77. {
  78. logInfo("valetudo.rules", "Altbau ausgewählte Räume saugen:")
  79. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  80. var json = "{\"command\": \"segmented_cleanup\",\"segment_ids\": ["
  81. gAltbau.members.forEach [ room |
  82. if (room.state.toString == "ON")
  83. {
  84. json += "\"" + room.label + "\","
  85. logInfo("valetudo.rules", "..." + room.label)
  86.  
  87. }
  88. ]
  89. json = json.substring(0, json.length -1)
  90. json += "],\"repeats\": 1}"
  91. mqttActions.publishMQTT("valetudo/rockrobo/custom_command",json)
  92. }
  93. if (gAltbau.state.toString == "OFF")
  94. {
  95. logInfo("valetudo.rules", "Altbau alle Räume saugen!")
  96. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  97. mqttActions.publishMQTT("valetudo/rockrobo/command","start")
  98.  
  99. }
  100. }
  101. if (VT_isMapNeubau.state.toString == "ON")
  102. {
  103. if (gNeubau.state.toString == "ON")
  104. {
  105. logInfo("valetudo.rules", "Neubau ausgewählte Räume saugen:")
  106. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  107. var json = "{\"command\": \"segmented_cleanup\",\"segment_ids\": ["
  108. gNeubau.members.forEach [ room |
  109. if (room.state.toString == "ON")
  110. {
  111. json += "\"" + room.label + "\","
  112. logInfo("valetudo.rules", "..." + room.label)
  113.  
  114. }
  115. ]
  116. json = json.substring(0, json.length -1)
  117. json += "],\"repeats\": 1}"
  118. mqttActions.publishMQTT("valetudo/rockrobo/custom_command",json)
  119. }
  120. if (gNeubau.state.toString == "OFF")
  121. {
  122. logInfo("valetudo.rules", "Neubau alle Räume saugen!")
  123. val mqttActions = getActions("mqtt","mqtt:broker:mosquitto")
  124. mqttActions.publishMQTT("valetudo/rockrobo/command","start")
  125.  
  126. }
  127. }
  128. end
Add Comment
Please, Sign In to add comment