Skip to content

6.6 First boot and troubleshooting

Roland Jax edited this page Oct 11, 2026 · 3 revisions

6.6 First boot & troubleshooting

Walkthrough for a fresh device. Assumes 6.1 (bus address set) and 6.2 (commands installed).

First boot

  1. Fresh device: follow 1. Quickstart for wiring, captive-portal WiFi setup, and first reachability (esp-ebus.local). Variant-independent — do this before anything below.
  2. Flash the INTERNAL firmware, then open the web UI. Set the eBUS address (6.1), restart.
  3. Install the command set for your devices (6.2).
  4. Open Logs: valid telegrams appear as master / slave hex lines. No lines at all → check wiring and address (duplicate addresses can disrupt arbitration and communication).
  5. Open Values: every value's age should stay within one poll cycle. Stale ages → the poll isn't winning arbitration or the device doesn't answer; check Metrics (bus_request_blocked, lost_total).
  6. Set up MQTT (6.4) for pushes and Home Assistant (6.5) if wanted.

Reading Metrics

  • Resets ≈ bus conflicts (arbitration lost, timing contention). Occasional resets under load are normal.
  • Errors ≈ malformed messages. The active error counters should be zero; persistent errors point at wiring, duplicate addresses, or wrong timing settings (6.1).
  • bus_request_blocked counts polls deferred because the bus was busy — high values with zero errors mean a lively bus, not a broken one.
  • resync_drops (SYN re-alignment) are routine noise on a busy bus as long as errors stay zero.

Heap

  • free is current pressure; min is the all-time watermark — one bad moment (e.g. WiFi/MQTT reconnect) depresses it permanently. Judge health by free and its trend, not by min alone.
  • largest well below free means fragmentation, not a leak.

MQTT

  • publish_failed climbs while disconnected (e.g. right after boot before the broker connects). Value messages are only queued while connected — they refresh on the next poll cycle, so nothing is lost beyond seconds of staleness.
  • queue_dropped above zero means the 8-deep outgoing queue overflows: the broker or link can't keep up.

Logs

  • High ring_overwrites / print_drops under load are expected — the log ring is a tail buffer, not an archive. For captures use a TCP port capture (e.g. port 3334), not serial logging.

Clone this wiki locally