7 Commits

Author SHA1 Message Date
67ca83983b new thermostat
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-12 18:03:46 +01:00
ad0b2a5d99 fix config
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-11-12 12:37:18 +01:00
109e8cf25f converters
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-12 12:33:48 +01:00
d88c6f7d7b converters
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-12 12:29:13 +01:00
926a71e6a8 converters
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-12 12:19:00 +01:00
20a064dc1f converters
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-12 12:17:49 +01:00
8417454f5b converters 2024-11-12 12:06:45 +01:00
2 changed files with 13 additions and 5 deletions

View File

@ -65,10 +65,10 @@ data:
"wolfgang": {
"label": "wolfgang",
"windows": [
{ "topic": "homegear/instance1/plain/24/1/STATE", "label": "Garten", "converter": "max" }
{ "topic": "zigbee2mqtt/0x00158d008b3328da", "label": "Garten", "converter": "aqara" }
],
"output_topic": "heating/homegear/instance1/set/43/1/SET_TEMPERATURE",
"output_converter": "max"
"output_topic": "zigbee2mqtt/0x540f57fffe7e3cfe/set",
"output_converter": "brennenstuhl"
},
"esszimmer": {
"label": "esszimmer",

View File

@ -6,9 +6,11 @@ import json
CONVERTERS = {
"target_temperature_output": {
"max": lambda x: x["output_temperature"],
"brennenstuhl": lambda x: json.dumps({"current_heating_setpoint":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 +144,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