first step of processing

This commit is contained in:
2024-11-06 14:27:40 +01:00
parent c81ed9644a
commit a24f4a4def
2 changed files with 24 additions and 14 deletions

10
env
View File

@ -19,17 +19,17 @@ export BOXES='{
"box1": {
"label": "living_room",
"windows": [
{ "topic": "street_side_topic", "label": "street_side" },
{ "topic": "garden_side_topic", "label": "garden_side" }
{ "topic": "window/living_room/street_side", "label": "street_side" },
{ "topic": "window/living_room/garden_side", "label": "garden_side" }
],
"output_topic": "output/living_room"
},
"box2": {
"label": "kitchen",
"windows": [
{ "topic": "street_side_topic", "label": "street_side" },
{ "topic": "garden_side_topic", "label": "garden_side" },
{ "topic": "garden_door_topic", "label": "garden_door" }
{ "topic": "window/kitchen/street_side", "label": "street_side" },
{ "topic": "window/kitchen/garden_side", "label": "garden_side" },
{ "topic": "window/kitchen/garden_door", "label": "garden_door" }
],
"output_topic": "output/kitchen"
}

View File

@ -25,6 +25,8 @@ def prepare_context(box_name, context):
for w in context['boxes'][box_name]['windows']:
local_context['window_state'][w['label']] = 'closed'
local_context['mode'] = 'high'
local_context['output_temperature'] = local_context['high_temperature']
return local_context
@ -61,20 +63,28 @@ def process_message(box_name, topic_key, payload, context):
logger.error(f"[{box_name}] Error processing '{topic_key}': {e}")
def process_general_off(box_name, context, local_context, payload):
return ("general off", False)
def process_maintenance_mode(box_name, context, local_context, payload):
return ("maintenance mode", False)
def process_status(box_name, context, local_context, payload):
return (f"{local_context}", True)
def process_general_off(box_name, context, local_context, payload):
local_context['general_off'] = (payload.lower() in ('true'))
return (local_context['output_temperature'], False)
def process_maintenance_mode(box_name, context, local_context, payload):
local_context['maintenance_mode'] = (payload.lower() in ('true'))
return (local_context['output_temperature'], False)
def process_cmd(box_name, context, local_context, payload):
return (f"cmd: {payload}", False)
if payload.lower() in ('high', 'low', 'off'):
local_context['mode'] = payload.lower()
else:
logger.error(f"Invalid cmd for {box_name} received: {payload}")
return (local_context['output_temperature'], False)
def process_high_temp(box_name, context, local_context, payload):
return (f"high_temp: {payload}", False)
local_context['high_temperature'] = payload
return (local_context['output_temperature'], False)
def process_window(box_name, context, local_context, sub_key, payload):
return (f"window: {sub_key}, {payload}", False)
local_context['window_state'][sub_key] = 'closed' if (payload.lower() in ('true', 'close', 'closed')) else 'open'
return (local_context['output_temperature'], False)