John edited this page Oct 31, 2018 · 40 revisions

Introduction

The ebusd binary offers a lot of command-line options to adjust its behaviour. It can either be run as a daemon or in foreground (when using -f).

After installing the binary (either from a release or using make install) you have to tell the system to automatically start the daemon during system startup with systemctl or chkconfig:
sudo systemctl enable ebusd
sudo chkconfig ebusd on

Command-line

ebusd only accepts options (with the exception of --scanconfig, see below):

ebusd [OPTION...]

The default value for each option is shown in square brackets like this: [default].

Device options

  • -d, --device=DEV
    Use DEV as eBUS device (device or [udp:]ip:port) [/dev/ttyUSB0]

  • -n, --nodevicecheck
    Skip serial eBUS device test

  • -r, --readonly
    Only read from device, never write to it

  • --initsend
    Send an initial escape symbol after connecting device.
    This is sometimes needed for UDP connected devices to let it know where to send the data.

  • --latency=USEC
    Transfer latency in us [0 for USB, 10000 for IP]

Message configuration options

  • -c, --configpath=PATH
    Read CSV config files from PATH [http://ebusd.eu/config/]

  • -s, --scanconfig[=ADDR] Pick CSV config files matching initial scan (ADDR="none" or empty for no initial scan message, "full" for full scan, or a single hex address to scan, default is to send a broadcast ident message).
    If combined with --checkconfig, you can add scan message data as arguments for checking a particular scan configuration, e.g. "FF08070400/0AB5454850303003277201". For further details on this option, see Automatic configuration.

  • --configlang=LANG
    Set the preferred language code for reading config files to LANG [system default language] . For message and/or field definition parts that support translation, the one having the specified language code as suffix after a dot in the column name will be preferred.

  • --checkconfig
    Check CSV config files, then stop.
    For further details on this option, see Probing the configuration.

  • --dumpconfig
    Check and dump CSV config files, then stop

  • --pollinterval=SEC
    Poll for data every SEC seconds (0=disable) [5]

  • -i, --inject
    Inject remaining arguments as already seen messages (e.g. "FF08070400/0AB5454850303003277201")

eBUS options

  • -a, --address=ADDR
    Use ADDR as own bus address [31]

  • --acquireretries=COUNT
    Retry bus acquisition COUNT times [2]

  • --acquiretimeout=USEC
    Stop bus acquisition after USEC us [9400]

  • --answer
    Actively answer to requests from other masters

  • --generatesyn
    Enable AUTO-SYN symbol generation

  • --numbermasters=COUNT
    Expect COUNT masters on the bus, 0 for auto detection [0]

  • --receivetimeout=USEC
    Expect a slave to answer within USEC us [25000]

  • --sendretries=COUNT
    Repeat failed sends COUNT times [2]

Daemon options

  • --accesslevel=LEVEL
    Set default access level(s) to LEVEL ("*" for everything, multiple levels separated by comma) [""]

  • --aclfile=FILE
    Read access control list from FILE. Each line is supposed to contain user name, secret, and access level(s) separated by comma.

  • -f, --foreground
    Run in foreground

  • --enablehex
    Enable hex command

  • --enabledefine
    Enable define command and "-def" option in read and write commands.

  • --pidfile=FILE
    PID file name (only for daemon) [/var/run/ebusd.pid]

  • --localhost
    Listen for command line connections on 127.0.0.1 interface only

  • -p, --port=PORT
    Listen for command line connections connections on PORT [8888]

  • --httpport=PORT
    Listen for HTTP connections on PORT, 0 to disable [0]

  • --htmlpath=PATH
    Path for HTML files served by HTTP port [/var/ebusd/html]

  • --updatecheck=MODE
    Set automatic update check to MODE (on|off) [on]

Log options

  • -l, --logfile=FILE
    Write log to FILE (only for daemon) [/var/log/ebusd.log]

  • --log="AREAS LEVEL"
    Only write log for matching AREA(S) below or equal to LEVEL [all notice].
    This is an alternative form to using --logareas/--logevel and allows to specify an individual level for each area by using the option multiple times. E.g. for having only bus messages in info level and all other in error level, use --log="all error" --log="bus info".

  • --logareas=AREAS
    Only write log for matching AREA(S): main,network,bus,update,all [all].
    This is the "old" form allowing to set one level for all areas only. Use "--log" for having an individual level per area instead.

  • --loglevel=LEVEL
    Only write log below or equal to LEVEL: error/notice/info/debug [notice].
    This is the "old" form allowing to set one level for all areas only. Use "--log" for having an individual level per area instead.

Raw logging options

  • --lograwdata[=bytes]
    Log messages or all received/sent bytes on the bus (see raw command)

  • --lograwdatafile=FILE
    Write raw log to FILE [/var/log/ebusd.log]

  • --lograwdatasize=SIZE
    Make raw log file no larger than SIZE kB [100]

Binary dump options

  • --dumpfile=FILE
    Dump received bytes to FILE [/tmp/ebusd_dump.bin]

  • --dumpsize=SIZE
    Make dump files no larger than SIZE kB [100]

  • -D, --dump
    Enable dump of received bytes (see dump command)

MQTT options

If support for MQTT was built in (see dependencies), the following additional options are available:

  • --mqtttopic=TOPIC
    Use MQTT TOPIC (prefix before /%circuit/%name or complete format including the option to publish by field when including "%field") [ebusd]

  • --mqttretain
    Set the retain flag on all topics instead of only selected global ones

  • --mqttjson
    Publish in JSON format instead of strings

  • --mqtthost=HOST
    Connect to MQTT broker on HOST [localhost]

  • --mqttignoreinvalid
    Ignore invalid parameters during init (e.g. for DNS not resolvable yet).

  • --mqttport=PORT
    Connect to MQTT broker on PORT (usually 1883), 0 to disable [0]

  • --mqttuser=USER
    Connect as USER to MQTT broker (no default)

  • --mqttpass=PASSWORD
    Use PASSWORD when connecting to MQTT broker (no default)

  • --mqttca=CA
    Use CA file or dir (ending with '/') for MQTT TLS (no default)

  • --mqttcert=CERTFILE
    Use CERTFILE for MQTT TLS client certificate (no default)

  • --mqttkey=KEYFILE
    Use KEYFILE for MQTT TLS client certificate (no default)

  • --mqttkeypass=PASSWORD
    Use PASSWORD for the encrypted KEYFILE (no default)

Other options

  • -?, --help
    Give this help list

  • --usage
    Give a short usage message

  • -V, --version
    Print program version

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.