Modbus client/server for qToggleServer
Project description
About
This is an addon for qToggleServer.
With this addon you can read and control Modbus-enabled devices (such as energy meters) via qToggleServer. You can also configure a Modbus server so that your qToggleServer behaves like a Modbus device itself.
Install
Install using pip:
pip install qtoggleserver-modbus
Usage
Serial Client
qtoggleserver.conf:
...
peripherals = [
...
{
driver = "qtoggleserver.modbus.ModbusSerialClient"
method = rtu # `ascii` (default), `rtu` or `binary`
serial_port = "/dev/ttyUSB0"
serial_baud = 9600 # this is the default
serial_stopbits = 1 # this is the default
serial_bytesize = 8 # this is the default
serial_parity = N # `N`, `E` or `O`
# see below for common parameters
}
...
]
...
Serial Server
qtoggleserver.conf:
...
peripherals = [
...
{
driver = "qtoggleserver.modbus.ModbusSerialServer"
method = rtu # `ascii` (default), `rtu` or `binary`
serial_port = "/dev/ttyUSB0"
serial_baud = 9600 # this is the default
serial_stopbits = 1 # this is the default
serial_bytesize = 8 # this is the default
serial_parity = N # `N`, `E` or `O`
# see below for common parameters
}
...
]
...
TCP Client
qtoggleserver.conf:
...
peripherals = [
...
{
driver = "qtoggleserver.modbus.ModbusTcpClient"
method = socket # `socket` (default), `ascii`, `rtu` or `binary`
tcp_host = "192.168.0.2" # IP or hostname of the Modbus device
tcp_port = 502 # Modbus device TCP port
# see below for common parameters
}
...
]
...
TCP Server
qtoggleserver.conf:
...
peripherals = [
...
{
driver = "qtoggleserver.modbus.ModbusTcpServer"
method = socket # `socket` (default), `ascii`, `rtu` or `binary`
tcp_address = "0.0.0.0" # binds on all interfaces by default
tcp_port = 502 # Modbus device TCP port
# see below for common parameters
}
...
]
...
Passive Serial Client
qtoggleserver.conf:
...
peripherals = [
...
{
driver = "qtoggleserver.modbus.PassiveModbusSerialClient"
serial_port = "/dev/ttyUSB0"
serial_baud = 9600 # this is the default
serial_stopbits = 1 # this is the default
serial_bytesize = 8 # this is the default
serial_parity = N # `N`, `E` or `O`
# see below for common parameters
}
...
]
...
Passive TCP(dump) Client
qtoggleserver.conf:
...
peripherals = [
...
{
driver = "qtoggleserver.modbus.PassiveModbusTcpClient"
port = 5020 # TCP port to sniff
iface = "eth0" # network interface to sniff (defaults to `any`)
master_ip = "192.168.1.122" # IP address of the master Modbus machine (optional)
slave_ip = "192.168.1.123" # IP address of the slave Modbus machine (optional)
master_port = 5020 # TCP port of the master Modbus machine (optional)
slave_port = 5021 # TCP port of the slave Modbus machine (optional)
tcpdump = "/usr/bin/tcpdump" # full path to the `tcpdump` binary (optional)
# see below for common parameters
}
...
]
...
Common Parameters
The following parameters are common to all types of Modbus clients and servers:
qtoggleserver.conf:
...
peripherals = [
...
{
...
name = "mydevice" # an optional name of your choice
timeout = 5 # in seconds, this is the default
unit_id = 0 # slave unit id, this is the default
ports = {
"port_id1" = {
modbus_type = coil # `coil`, discrete_input`, `input_register` or `holding_register`
address = 1234 # Modbus port address (from `0000` to `9999`)
# number of successive registers mapped to the port, starting at `address` (defaults to `1`)
length = 2
writable = false # by default is `null`, inferred from `modbus_type`
# `struct` format to use to group multiple register values into a byte array (defaults to `>` followed
# by `H` times `length`)
register_group_fmt = ">HH"
# `struct` format to use to map register byte array to port value (defaults to `>h`)
value_fmt = ">i"
}
...
}
...
}
...
]
...
Common Client Parameters
The following parameters are common to all types of Modbus clients:
qtoggleserver.conf:
...
peripherals = [
...
{
...
use_single_functions = false # set to `true` to use single Modbus access functions instead of multi ones
initial_delay = 5 # the number of seconds to delay polling after connection (defaults to `0`)
...
}
...
]
...
Common Server Parameters
The following parameters are common to all types of Modbus servers:
qtoggleserver.conf:
...
peripherals = [
...
{
...
identity_vendor_name = "My Vendor"
identity_product_code = "PROD1234"
identity_major_minor_revision = "3.14.15"
identity_vendor_url = "https://example.com"
identity_product_name = "My Product"
identity_model_name = "My Model"
identity_user_application_name = "My Custom Model"
...
}
...
]
...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qtoggleserver_modbus-1.4.0.tar.gz.
File metadata
- Download URL: qtoggleserver_modbus-1.4.0.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee7041a87068e7627bf7eb5e5c944b75f30906eb779c8a2c1ebd18b11c75cb19
|
|
| MD5 |
7b196a071190670874f1b3266894af08
|
|
| BLAKE2b-256 |
80e07aec7e1fb64bc1390167cb224c6a552fd638fb0dd05791f592c6fa5df209
|
File details
Details for the file qtoggleserver_modbus-1.4.0-py3-none-any.whl.
File metadata
- Download URL: qtoggleserver_modbus-1.4.0-py3-none-any.whl
- Upload date:
- Size: 19.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d28f0fadd823a182e653083ed22862b9e54e7090dd3ff9634089941ae09c72aa
|
|
| MD5 |
b4c3245e62c4af54d18b23aa9a2cabb8
|
|
| BLAKE2b-256 |
50426557804cb0ddfd95e102f0a56d4c3f3db184e0ec7bc25df9f6b337dc429f
|