Follow the standard MQTT Discovery split: discovery config stays under the HA discovery prefix (homeassistant/.../config, required), but the actual state and availability are published under our own prefix (default home_automation/). The config payload's state_topic/availability fields point at the new prefix so HA reads state from there. - new config ha_state_topic_prefix (default home_automation). - build_discovery_payload + all publish_* split discovery_prefix (config topic) from state_prefix (state/availability). energy-cost still omits availability; modbus availability structure unchanged. Tests updated.
66 lines
2.3 KiB
Bash
66 lines
2.3 KiB
Bash
# Required: bootstrap and core app settings.
|
|
# These values should be set before the container starts.
|
|
APP_NAME=Home Automation Backend (Python)
|
|
APP_ENV=production
|
|
APP_HOSTNAME=home-automation.example.com
|
|
APP_DATABASE_URL=sqlite:////app/data/app.db
|
|
AUTH_BOOTSTRAP_USERNAME=admin
|
|
AUTH_BOOTSTRAP_PASSWORD=change-me
|
|
|
|
# Optional: runtime overrides.
|
|
# Leave these commented out to use the application's built-in defaults.
|
|
# APP_DEBUG=
|
|
# AUTH_SESSION_COOKIE_NAME=
|
|
# AUTH_SESSION_TTL_HOURS=
|
|
# AUTH_COOKIE_SECURE_OVERRIDE=
|
|
|
|
# Optional: Home Assistant integration.
|
|
# Leave these empty when Home Assistant integration is not needed.
|
|
HOME_ASSISTANT_BASE_URL=
|
|
HOME_ASSISTANT_AUTH_TOKEN=
|
|
POO_WEBHOOK_ID=
|
|
POO_SENSOR_ENTITY_NAME=
|
|
POO_SENSOR_FRIENDLY_NAME=
|
|
|
|
# Optional: TickTick integration.
|
|
# APP_HOSTNAME is used to derive the OAuth callback URI automatically.
|
|
TICKTICK_CLIENT_ID=
|
|
TICKTICK_CLIENT_SECRET=
|
|
TICKTICK_TOKEN=
|
|
HOME_ASSISTANT_ACTION_TASK_PROJECT_ID=
|
|
|
|
# Optional: Modbus polling (global kill-switch; default false — opt-in).
|
|
# MODBUS_POLLING_ENABLED=false
|
|
|
|
# Optional: MQTT broker connection.
|
|
# Leave MQTT_ENABLED=false (or unset) when MQTT is not needed.
|
|
MQTT_ENABLED=false
|
|
MQTT_BROKER_HOST=
|
|
MQTT_BROKER_PORT=1883
|
|
MQTT_USERNAME=
|
|
MQTT_PASSWORD=
|
|
MQTT_TLS_ENABLED=false
|
|
|
|
# Optional: Home Assistant MQTT Discovery.
|
|
# Requires MQTT_ENABLED=true and a running MQTT broker.
|
|
# HA_DISCOVERY_PREFIX is the config topic prefix (must be "homeassistant" for HA auto-discovery).
|
|
# HA_STATE_TOPIC_PREFIX is the prefix for state/availability topics (separate from discovery).
|
|
HA_DISCOVERY_ENABLED=false
|
|
HA_DISCOVERY_PREFIX=homeassistant
|
|
HA_STATE_TOPIC_PREFIX=home_automation
|
|
|
|
# Optional: DSMR smart-meter ingest via MQTT (M6; default off — opt-in).
|
|
# Set DSMR_INGEST_ENABLED=true to subscribe to the DSMR MQTT topic and
|
|
# store 10-second downsampled telegram frames in dsmr_reading.
|
|
# DSMR_INGEST_ENABLED=false
|
|
# DSMR_MQTT_TOPIC=dsmr/json
|
|
# DSMR_SAMPLE_INTERVAL_S=10
|
|
# DSMR tariff topic: publishes "1" (dal/off-peak) or "2" (normal/peak).
|
|
# Empty string disables tariff-aware pricing (buy/sell_price_now always show normal rate).
|
|
# DSMR_TARIFF_TOPIC=dsmr/meter-stats/electricity_tariff
|
|
|
|
# Optional: Tibber dynamic pricing credentials (M6).
|
|
# Only used when an active energy contract with kind=tibber is configured.
|
|
# TIBBER_API_TOKEN=
|
|
# TIBBER_HOME_ID=
|