# Prompt - Modbus to MQTT App Use these development guidelines for this repository. ## Goals - Keep the app config-driven and backward compatible. - Avoid breaking MQTT topics or HA discovery behavior. - Prefer readable logs and safe defaults. ## Core behavior - Read Modbus registers and publish to MQTT. - Support per-entity refresh intervals (seconds or minutes). - Use batching for contiguous Modbus reads. - Publish only on change by default (configurable). - Publish availability (LWT) and metrics. ## Configuration rules - `src/config.yaml` is the active config file. - Validate config on startup (required fields, unique_id). - Support `state_topic` override per entity. - Support `value_map` for text mapping. - Allow computed entities (`input_type: computed`). ## Reliability - Reconnect Modbus with exponential backoff. - Backoff per entity after read errors. - Keep MQTT connection stable and log failures. ## Observability - Log at INFO by default, allow DEBUG via config. - Optional file logging via `log_file`. - Metrics to `/metrics`. ## Changes checklist - Update README and CHANGELOG when behavior changes. - Keep ASCII where possible (avoid accents in new files). - Add minimal comments only when logic is not obvious.