M-Bus (Meter-bus) library #
Load the library:
require('mbus')
Library functions #
init(port, baud [, duplex])
#
Sets serial port and baud rate to use for all other mbus functions.
Must be called before any other mbus functions.
Parameters:
port- serial port to use (example: "/dev/RS232" or "/dev/ttyUSB0")baud- serial baud rate (example: 2400)duplex- serial port duplex mode, set to "half" for RS-485 (default is "full")
scan([min [, max [, retries]]])
#
Scans given primary address range. Returns table with found devices.
Parameters:
min- min scan address, defaults to 0max- max scan address, defaults to 250retries- number of extra ping retries for each device, defaults to 0
scansecondary([mask])
#
Scans secondary address range using the given address mask. Returns table with found devices.
Parameters:
mask- secondary address mask, defaults to "FFFFFFFFFFFFFFFF"
getdata(addr [, frames])
#
Gets all data from the device with the given primary or secondary address. Returns table on success, nil plus error message on failure.
Parameters:
addr- primary (integer) or secondary (hex string, 16 characters) device addressframes- maximum number of frames that the device can reply with, defaults to 1
writeaddr(old, new)
#
Sets a new primary address. Returns true on success, nil plus error message on failure.
Parameters:
old- old (current) primary addressnew- new primary address
writevif4(addr, vif, value)
#
Changes VIF to the given 4-byte integer value for the given primary address. Returns true on success, nil plus error message on failure.
Parameters:
addr- primary device addressvif- VIF field id (example: 0x13 for counter value)value- 4-byte value
send(...)
#
Sends arbitrary data to the port. Header (0x68 LEN LEN 0x68) and checksum + ending byte (0x16) are added automatically. Returns true on success, nil plus error message on failure.
Parameters:
...- data bytes, each argument is anumberin 0..255 range
lasterror()
#
Returns a string containing the last error that occurred during some mbus function calls.