Skip to content

Writing data to a Wolf BM-2 controller #1696

@Ces1254

Description

@Ces1254

Description

Unless I am doing something substantially wrong, it appears that for a master/slave message ebusd (master) always expects an answer from the slave. This creates a problem while writing data to a BM-2 controller by Wolf, because for a write command (0x5023) BM-2 does not responds with any acknowledgement other than the low level bus ack.

Actual behavior

Here below a snapshot of the bus traffic and log:

-------- From raw log

2026-02-20 12:19:32.260 >318550220300b52758<0002050076>00

2026-02-20 12:19:39.454 >3185502309ccb52700005d010000f6<00
2026-02-20 12:19:39.804 >3185502309ccb52700005d010000f6<00
2026-02-20 12:19:40.242 >3185502309ccb52700005d010000f6<00

2026-02-20 12:19:40.995 >318550220300b52758<000200002c>00

2026-02-20 12:19:41.231 >318550220300b52758<000200002c>00

--------- From stdout

2026-02-20 12:19:32.260 [update notice] sent read bm SetValCorrection QQ=31: 0.5

2026-02-20 12:19:39.414 [bus error] send to 85: ERR: read timeout, retry
2026-02-20 12:19:39.804 [bus error] send to 85: ERR: read timeout, retry
2026-02-20 12:19:40.243 [bus error] send to 85: ERR: read timeout
2026-02-20 12:19:40.243 [bus error] send message part 0: ERR: read timeout
2026-02-20 12:19:40.243 [main error] write bm SetValCorrection: ERR: read timeout

2026-02-20 12:19:40.995 [update notice] sent read bm SetValCorrection QQ=31: 0.0

2026-02-20 12:19:41.231 [update notice] sent read bm SetValCorrection QQ=31: 0.0

For comparison, here the messages to implement the same change (0.5 to 0.0)

  • from Wolfnet to BM-2 (through Wolf web app)

2026-02-19 22:32:27.644 <ff 85 5023 09 cc b527 0000 5d01 0000 e3 00

  • from ebusd to BM-2 (through TCP socket)

2026-02-20 12:19:39.454 >31 85 5023 09 cc b527 0000 5d01 0000 f6<00

The messages are identical and the command works as expected in both cases, confirmed by the read back of the value. However, an ERR is raised when ebusd executed the write.

Expected behavior

While an option is to ignore the 'ERR: read timeout', a clean solution would be to implement a 'write w/o response' in the message description, to support this type of exchanges.

ebusd version

current source from git

ebusd arguments

--device=ens:192.168.31.113:9999 --configpath=/xxx/xxx/Projects/wolf_ebus/ebusd_conf/wolf --lograwdata --lograwdatafile=/xxx/xxx/ebuslograw.txt

Operating system

Debian 13 (Trixie) / Ubuntu 24-25 / Raspberry Pi OS 13

CPU architecture

x64

Dockerized

None

Hardware interface

Adapter Shield v5/C6/Stick via WiFi

Related integration

No response

Logs

See description above

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions