Skip to content

Releases: BlackZork/mqmgateway

v2.10.0

20 Sep 14:20
Compare
Choose a tag to compare

New features:

  • mqtt.publish_mode (always|on_change), allows to publish to MQTT every time a register data is read (#56, #32). Configurable per topic or globally on mqtt level.

Bugfixes:

  • do not publish on topic if related modbus register data was changed in a way that generates the same mqtt payload (#38)
  • fixed startup publish bug when the first received register value was compared to uninitialized variable
  • fixed json generation for single element lists (#65)

v2.8.1

21 Aug 20:24
Compare
Choose a tag to compare

Bugfixes:

  1. Fixed std.map parsing for keys greater than INT16_MAX (32767). (#62)

v2.8.0

19 Jul 13:50
Compare
Choose a tag to compare

New features:

  1. std.map converter for state and command topics.
  2. TLS support for mqtt broker connection (git-developer).
  3. support for single quoted converter arguments of string type.
  4. support for hex (0x..) and octal (0123..) format in mqtt string payload for command topics

Bugfixes:

  1. Respect both delay_before_first_command and delay_before_command set for a single poll group
  2. Fixed bug with multi-slave poll_group definition overriding previously defined slave name property

v2.6.0

12 Jun 20:23
Compare
Choose a tag to compare

New features:

  1. support for nested maps and lists in state section, with converters added on any level.
  2. support for list of registers with converter in availability section.
  3. improved performance for configurations with a lot of modbus networks and many MQTT command and state topics:
    • added relation map for poll group to MQTT state topics.
    • added relation map for MQTT command topics to register data.
  4. Added multi device support for poll groups and mqtt topics

v2.4.0

14 May 09:25
Compare
Choose a tag to compare

This release was intended to be much smaller, but the changes got a bit out of control :-)

New features:

  1. Write commands now respect poll delays configured per network or per slave. Renamed min_delay_before[_first]_poll to delay_before[_first]_command (#40). Please update your config file.
  2. Added write_retries and read_retries, configurable per slave or per modbus network.
  3. Made log debug level (5) usable for real-time monitoring. Moved all very frequent logs to new trace level (6), added logs for read and write recovery.
  4. Added watchdog for Modbus network. It reconnects network if TCP /RTU connection is stalled (#39) or RTU device is unplugged (#9). The default watch period is 10s. See "watchdog" entry in modbus configuration section

Bug fixes:

  1. Fixed bug where state was not updated after a write to register that is a member of a poll group, but not the first one.
  2. Fixed write only mode
  3. Availability flag was not changed after reconnecting Modbus network (#43)
  4. a response_timeout and a response_data_timeout was not set for TCP network, defaults changed from invalid 1s to 500ms (#39)
  5. Removed double timestamp from logs when modqttd stderr is connected to systemd-journald stream.
  6. Do not send garbage as state if read fails on initial poll
  7. Fixed compile errors for gcc v.9

v2.2.0

26 Mar 11:59
Compare
Choose a tag to compare

New features:

v2.0.0

17 Feb 17:53
Compare
Choose a tag to compare

New features:

  • modbus thread polling loop was reorganized and partially rewritten. Removed sub-loops for initial poll and register group polling. Now there is a single control loop for reading, writing and reacting to control messages from the main thread. This is the main reason to bump version to 2.x.
  • new per-slave configuration options min_delay_before_first_poll and min_delay_before_poll. Those options allows to define a silence period before reading register data.

v1.4.1

29 Jan 14:03
Compare
Choose a tag to compare

This is the last stable release for 1.x line, no significant changes from 1.4.0.
Added to trigger docker stable images build before upcoming 2.x

v1.4.0

18 Jan 16:57
Compare
Choose a tag to compare

Bug fixes:

  • #30 Missing authentication data when MQTT username and password is set
  • implementation for forgotten response_timeout and response_data_timeout config variables
  • Fixed -DWITHOUT_TESTS if catch2 is not installed

New features:

  • log final poll specification after merging poll groups with topic registers

  • std.multiply converter

  • std.int8 and std.uint8 state converter

  • introduced new modbus network slaves config section and moved poll groups there.
    Please update your config:

    Old config:

    modbus:
      networks:
        - name: tcptest
          poll_groups:
            # slave 1
            - register: 1.1
              count: 2    
            # slave 3
            - register: 3.2
              count: 5    

    New config:

    modbus:
      networks:
        - name: tcptest
          slaves:
            - address: 1
              poll_groups:
                - register: 1
                  count: 2
            - address: 3
              poll_groups:
                - register: 2
                  count: 5

    Old style poll groups are depreciated and will be removed in future releases.
    If both old style and new style declarations are present in config file then
    they will be merged altogether. This allows to migrate to new style config slave by slave.

v1.2.0

18 Sep 14:53
Compare
Choose a tag to compare

New features:

  • Extended converter interfaces to handle MQTT -> Modbus data conversion
  • Added RTU config variables for RST and delay
  • Support for reading and writing multiple registers at once
  • Support for predefined poll groups to optimize modbus registers reading
  • (Breaking change!, please fix your config files after upgrade) Use 0-based modbus addressing if registers are defined as hex in config file, 1-based modbus addressing otherwise
  • New converters: signed int16, string, float
  • Support for handling 2-register data in divide converter (Christian)
  • Support for 32bit int and float values for exprtk converter (Christian)
  • Support for signed 16bit in values for exprtk
  • Fixed rounding issues on linux/i386 (Christian)