4 Commits

Author SHA1 Message Date
dbdd24822e fix
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-07 22:15:20 +01:00
78a68f9009 fix
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-07 22:10:39 +01:00
fbb9aa6665 fix
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-07 22:05:13 +01:00
51995fc489 status text output
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-11-07 20:02:03 +01:00
3 changed files with 10 additions and 1 deletions

View File

@ -10,7 +10,7 @@ data:
MQTT_BOX_TOPIC_PREFIXES: | MQTT_BOX_TOPIC_PREFIXES: |
{ {
"high_temp": "heating/config/high_temp/", "high_temp": "heating/config/high_temp/",
"overwrite_window": "heating/overwrite_window", "overwrite_window": "heating/overwrite_window/",
"cmd": "heating/command/" "cmd": "heating/command/"
} }
MQTT_CENTRAL_TOPICS: | MQTT_CENTRAL_TOPICS: |
@ -20,6 +20,7 @@ data:
"status": "heating/system/status" "status": "heating/system/status"
} }
MQTT_STATUS_TOPIC: "heating/status" MQTT_STATUS_TOPIC: "heating/status"
MQTT_CONTEXT_TOPIC_PREFIX: "heating/context/"
OFF_TEMPERATURE: "5.0" OFF_TEMPERATURE: "5.0"
LOW_TEMPERATURE: "15.0" LOW_TEMPERATURE: "15.0"
DEFAULT_HIGH_TEMPERATURE: "21.0" DEFAULT_HIGH_TEMPERATURE: "21.0"

View File

@ -19,6 +19,7 @@ LOW_TEMPERATURE = os.getenv("LOW_TEMPERATURE", "15.0")
DEFAULT_HIGH_TEMPERATURE = os.getenv("DEFAULT_HIGH_TEMPERATURE", "21.0") DEFAULT_HIGH_TEMPERATURE = os.getenv("DEFAULT_HIGH_TEMPERATURE", "21.0")
MAINTENANCE_TEMPERATURE = os.getenv("MAINTENANCE_TEMPERATURE", "30.0") MAINTENANCE_TEMPERATURE = os.getenv("MAINTENANCE_TEMPERATURE", "30.0")
STATUS_TOPIC = os.getenv("MQTT_STATUS_TOPIC") STATUS_TOPIC = os.getenv("MQTT_STATUS_TOPIC")
CONTEXT_TOPIC_PREFIX = os.getenv("MQTT_CONTEXT_TOPIC_PREFIX")
# Check if required environment variables are set # Check if required environment variables are set
missing_vars = [] missing_vars = []
@ -32,6 +33,8 @@ if not CENTRAL_TOPICS_CONFIG:
missing_vars.append('MQTT_CENTRAL_TOPICS') missing_vars.append('MQTT_CENTRAL_TOPICS')
if not STATUS_TOPIC: if not STATUS_TOPIC:
missing_vars.append('MQTT_STATUS_TOPIC') missing_vars.append('MQTT_STATUS_TOPIC')
if not CONTEXT_TOPIC_PREFIX:
missing_vars.append('MQTT_CONTEXT_TOPIC_PREFIX')
if missing_vars: if missing_vars:
logger.error(f"Error: The following environment variables are not set: {', '.join(missing_vars)}") logger.error(f"Error: The following environment variables are not set: {', '.join(missing_vars)}")
@ -46,6 +49,7 @@ context['low_temperature'] = LOW_TEMPERATURE
context['default_high_temperature'] = DEFAULT_HIGH_TEMPERATURE context['default_high_temperature'] = DEFAULT_HIGH_TEMPERATURE
context['maintenance_temperature'] = MAINTENANCE_TEMPERATURE context['maintenance_temperature'] = MAINTENANCE_TEMPERATURE
context['status_topic'] = STATUS_TOPIC context['status_topic'] = STATUS_TOPIC
context['context_topic_prefix'] = CONTEXT_TOPIC_PREFIX
# Load box configurations from JSON # Load box configurations from JSON
try: try:

View File

@ -1,4 +1,5 @@
from loguru import logger from loguru import logger
import json
# context # context
@ -63,6 +64,9 @@ def process_message(box_name, topic_key, payload, context):
context['client'].publish(publish_topic, result_message) context['client'].publish(publish_topic, result_message)
logger.info(f"[{box_name}] Result published on '{publish_topic}': {status} {result_message}") logger.info(f"[{box_name}] Result published on '{publish_topic}': {status} {result_message}")
context_topic = f"{context['context_topic_prefix']}{box['label']}"
context['client'].publish(context_topic, json.dumps(local_context))
logger.info(f"[{box_name}] Local context after: {local_context}") logger.info(f"[{box_name}] Local context after: {local_context}")
except Exception as e: except Exception as e:
logger.error(f"[{box_name}] Error processing '{topic_key}': {e}") logger.error(f"[{box_name}] Error processing '{topic_key}': {e}")