-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsprinkler_scheduler_edit.py
More file actions
41 lines (33 loc) · 1.37 KB
/
Copy pathsprinkler_scheduler_edit.py
File metadata and controls
41 lines (33 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from appdaemon.plugins.hass import Hass
import requests
HA_URL = "http://xxx.xxx.xxx.xxx:8123"
ACCESS_TOKEN = "<Your access token>"
HEADERS = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Content-Type": "application/json",
}
IDENTIFIER = "berieselung"
class SprinklerSchedulerEdit(Hass):
def initialize(self):
self.listen_event(self.disable_schedules, "DISABLE_SPRINKLER_SCHEDULES")
self.listen_event(self.enable_schedules, "ENABLE_SPRINKLER_SCHEDULES")
def disable_schedules(self, event_name, data, **kwargs):
schedules = self.get_schedules()
for schedule in schedules:
self.turn_off(f"switch.schedule_{schedule}")
self.log("Disabled sprinkler schedules!")
def enable_schedules(self, event_name, data, **kwargs):
schedules = self.get_schedules()
for schedule in schedules:
self.turn_on(f"switch.schedule_{schedule}")
self.log("Enabled sprinkler schedules!")
def get_schedules(self):
self.log("Getting sprinkler schedules...")
response = requests.get(f"{HA_URL}/api/scheduler/list", headers=HEADERS)
self.log(f"Sprinkler Scheduler Response Status: {response.status_code}")
schedules = response.json()
matching_schedules = []
for schedule in schedules:
if IDENTIFIER in schedule.get("tags", []):
matching_schedules.append(schedule["schedule_id"])
return matching_schedules