Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
109e8cf25f
|
|||
d88c6f7d7b
|
|||
926a71e6a8
|
|||
20a064dc1f
|
|||
8417454f5b
|
@ -65,7 +65,7 @@ data:
|
||||
"wolfgang": {
|
||||
"label": "wolfgang",
|
||||
"windows": [
|
||||
{ "topic": "homegear/instance1/plain/24/1/STATE", "label": "Garten", "converter": "max" }
|
||||
{ "topic": "homegear/instance1/plain/24/1/STATE", "label": "Garten", "converter": "aqara" }
|
||||
],
|
||||
"output_topic": "heating/homegear/instance1/set/43/1/SET_TEMPERATURE",
|
||||
"output_converter": "max"
|
||||
|
@ -8,7 +8,8 @@ CONVERTERS = {
|
||||
"max": lambda x: x["output_temperature"],
|
||||
},
|
||||
"window_contact_input": {
|
||||
"max": lambda x: 'closed' if (x.lower() in ('false', 'close', 'closed')) else 'open'
|
||||
"max": lambda x: 'closed' if (x.lower() in ('false', 'close', 'closed')) else 'open',
|
||||
"aqara": lambda x: 'closed' if json.loads(x)["contact"] else 'open'
|
||||
}
|
||||
}
|
||||
|
||||
@ -142,7 +143,13 @@ def process_high_temp(box_name, context, local_context, payload):
|
||||
return True
|
||||
|
||||
def process_window(box_name, context, local_context, sub_key, payload):
|
||||
local_context['window_state'][sub_key] = 'closed' if (payload.lower() in ('false', 'close', 'closed')) else 'open'
|
||||
# default converter
|
||||
converter = lambda x:x
|
||||
for sk in context["boxes"][box_name]["windows"]:
|
||||
if sk["label"] == sub_key:
|
||||
converter = CONVERTERS["window_contact_input"][sk["converter"]]
|
||||
break
|
||||
local_context['window_state'][sub_key] = converter(payload)
|
||||
_calculate_output_temperature(local_context)
|
||||
return True
|
||||
|
||||
|
Reference in New Issue
Block a user