import json
from homematicip.base.HomeMaticIPObject import HomeMaticIPObject
[docs]class Rule(HomeMaticIPObject):
"""this class represents the automation rule """
def __init__(self, connection):
super().__init__(connection)
self.id = None
self.homeId = None
self.label = ""
self.active = False
self.ruleErrorCategories = []
self.ruleType = ""
# these 3 fill be filled from subclasses
self.errorRuleTriggerItems = []
self.errorRuleConditionItems = []
self.errorRuleActionItems = []
[docs] def from_json(self, js):
super().from_json(js)
self.id = js["id"]
self.homeId = js["homeId"]
self.label = js["label"]
self.active = js["active"]
self.ruleType = js["type"]
self.devices = []
for errorCategory in js["ruleErrorCategories"]:
pass # at the moment this was always empty
[docs] def set_label(self, label):
""" sets the label of the rule """
data = {"ruleId": self.id, "label": label}
return self._restCall("rule/setRuleLabel", json.dumps(data))
def __str__(self):
return "{} {} active({})".format(self.ruleType, self.label, self.active)
[docs]class SimpleRule(Rule):
""" This class represents a "Simple" automation rule """
[docs] def enable(self):
""" enables the rule """
return self.set_rule_enabled_state(True)
[docs] def disable(self):
""" disables the rule """
return self.set_rule_enabled_state(False)
[docs] def set_rule_enabled_state(self, enabled):
""" enables/disables this rule"""
data = {"ruleId": self.id, "enabled": enabled}
return self._restCall("rule/enableSimpleRule", json.dumps(data))
[docs] def from_json(self, js):
super().from_json(js)
# self.get_simple_rule()
[docs] def get_simple_rule(self):
data = {"ruleId": self.id}
js = self._restCall("rule/getSimpleRule", json.dumps(data))
for errorRuleTriggerItem in js["errorRuleTriggerItems"]:
pass # at the moment this was always empty
for errorRuleConditionItem in js["errorRuleConditionItems"]:
pass # at the moment this was always empty
for errorRuleActionItem in js["errorRuleActionItems"]:
pass # at the moment this was always empty
sr = js["simpleRule"]