iobroker.modbus 8.0.3 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  [![Translation status](https://weblate.iobroker.net/widgets/adapters/-/modbus/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
10
10
  [![Downloads](https://img.shields.io/npm/dm/iobroker.modbus.svg)](https://www.npmjs.com/package/iobroker.modbus)
11
11
 
12
- **This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** For more details and for information how to disable the error reporting, see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry reporting is used starting with js-controller 3.0.
12
+ **This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** For more details and for information on how to disable the error reporting, see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry reporting is used starting with js-controller 3.0.
13
13
 
14
14
  Implementation of ModBus Slave and Master for ioBroker. The following types are supported:
15
15
  - Modbus RTU over serial (master)
@@ -60,10 +60,10 @@ Like addresses from 3 to 20 will be aligned to 0 up 32.
60
60
  If this option is active, the addresses will not be aligned.
61
61
 
62
62
  ### Do not use multiple registers
63
- If slave does not support "write multiple registers" command, you can activate it to get warnings when the multiple registers will be written.
63
+ If a slave does not support the "write multiple registers" command, you can activate it to get warnings when the multiple registers will be written.
64
64
 
65
65
  ### Use only multiple write registers
66
- If slave only supports "write multiple registers" command, you can activate so the registers will be written always with FC15/FC16 command.
66
+ If a slave only supports the "write multiple registers" command, you can activate so the registers will be written always with FC15/FC16 command.
67
67
 
68
68
  ### Round Real to
69
69
  How many digits after comma for float and doubles.
@@ -78,13 +78,13 @@ Reconnection interval (Only relevant for master)
78
78
  Timeout for read requests in milliseconds. If no response is received from a slave at this time, the connection will be terminated.
79
79
 
80
80
  ### Pulse time
81
- If pulse used for coils, this defines the interval in milliseconds how long is the pulse.
81
+ If pulse is used for coils, this defines the interval in milliseconds how long is the pulse.
82
82
 
83
83
  ### Wait time
84
84
  Wait time between polling of two different device IDs in milliseconds.
85
85
 
86
86
  ### Max read request length
87
- Maximal length of command READ_MULTIPLE_REGISTERS as number of registers to read.
87
+ Maximal length of command READ_MULTIPLE_REGISTERS as the number of registers to read.
88
88
 
89
89
  Some systems require first "write request" to deliver the data on "read request".
90
90
  You can force this mode by setting of the "Max read request length" to 1.
@@ -97,22 +97,40 @@ There is a software [**Modbus RTU <-> Modbus RTU over TCP**](http://mbus.sourcef
97
97
  Both solutions **RTU over TCP** and **TCP** work well.
98
98
 
99
99
  ### Read interval
100
- Delay between two read requests in ms. Default 0.
100
+ Delay between two read requests in milliseconds. Default 0.
101
101
 
102
102
  ### Write interval
103
- Delay between two write requests in ms. Default 0.
103
+ Delay between two write requests in milliseconds. Default 0.
104
104
 
105
105
  ### Update unchanged states
106
106
  Normally, if the value has not changed, it will not be written into ioBroker.
107
107
  This flag allows updating the value's timestamp by every cycle.
108
108
 
109
+ ### Value Sanitization
110
+ Enable automatic sanitization of invalid register values (NaN, Infinity, extreme float values like ±3.4e38).
111
+ This feature helps prevent corrupted Modbus float values from propagating into ioBroker states, which is especially useful for devices like SolarEdge inverters that occasionally return invalid values due to timeouts or internal scaling errors.
112
+
113
+ When enabled, you can configure per-register sanitization options:
114
+ - **Sanitize**: Enable sanitization for this specific register
115
+ - **Sanitize Action**: Choose how to handle invalid values
116
+ - *Keep Last Valid*: Keeps the last known valid value when an invalid value is detected
117
+ - *Replace with 0*: Replaces invalid values with 0
118
+ - **Min Valid Value**: Optional minimum valid value threshold
119
+ - **Max Valid Value**: Optional maximum valid value threshold
120
+
121
+ Invalid values detected:
122
+ - `NaN` (Not a Number)
123
+ - `Infinity` or `-Infinity`
124
+ - Extreme float values (≥3.4e38 or ≤-3.4e38) - typical Modbus error values
125
+ - Values outside the configured min/max range
126
+
109
127
  ### Do not include addresses in ID
110
128
  Do not add address in the generated ioBroker iD. `10_Input10` vs `_Input10`.
111
129
 
112
130
  ### Preserve dots in ID
113
131
  With this flag the Name will be `Inputs.Input10`. Without => `Inputs_Input10`.
114
132
 
115
- ## Parameters for single address line in config
133
+ ## Parameters for a single address line in config
116
134
  ### Address
117
135
  Modbus address to read.
118
136
 
@@ -129,16 +147,16 @@ Parameter description.
129
147
  Unit of the Parameter.
130
148
 
131
149
  ### Type
132
- Datatype to read from Bus. For details about the possible data types see section Data types.
150
+ Datatype to read from Bus. For details about the possible data types, see the section Data types.
133
151
 
134
152
  ### Length
135
- Length of parameter. For the most parameters, this is determined based on the data type, but for Strings this defines the length in Bytes / characters.
153
+ Length of parameter. For most parameters, this is determined based on the data type, but for Strings this defines the length in Bytes / characters.
136
154
 
137
155
  ### Factor
138
156
  This factor is used to multiply the read value from Bus for static scaling. So the calculation looks like following `val = x * Factor + Offset`.
139
157
 
140
158
  ### Offset
141
- This offset is added to the read value after above multiplication. So the calculation looks like following `val = x * Factor + Offset`.
159
+ This offset is added to the read value after the above multiplication. So the calculation looks like following `val = x * Factor + Offset`.
142
160
 
143
161
  ### Formula
144
162
  This field can be used for advanced calculations if Factor and Offset are not enough. **If this field is set, then the Factor and Offset fields are ignored.**
@@ -159,7 +177,7 @@ ioBroker role to assign.
159
177
  ioBroker room to assign.
160
178
 
161
179
  ### Poll
162
- If activated, the values are polled in a predefined interval from slave.
180
+ If activated, the values are polled in a predefined interval from a slave.
163
181
 
164
182
  ### WP
165
183
  Write pulse
@@ -173,6 +191,17 @@ This is necessary to be used by dynamic scaling factors which are on some system
173
191
  If a value is marked with this flag, then the value will be stored into a variable with the following naming convention: `sf['Modbus_address']`.
174
192
  This variable can be then later used in any formula for other parameters. E.g., the following formula can set: `(x * sf['40065']) + 50;`
175
193
 
194
+ ### Sanitize (Expert Mode)
195
+ Enable value sanitization for this register. Only available when "Value Sanitization" is enabled globally in the adapter settings.
196
+
197
+ ### Sanitize Action (Expert Mode)
198
+ Choose the action to take when an invalid value is detected:
199
+ - **Keep Last Valid**: Retains the last known valid value
200
+ - **Replace with 0**: Replaces the invalid value with 0
201
+
202
+ ### Min Valid / Max Valid (Expert Mode)
203
+ Optional minimum and maximum value thresholds for range validation. Values outside this range will be treated as invalid and sanitized according to the Sanitize Action.
204
+
176
205
  ## Data types
177
206
  - `uint16be` - `Unsigned 16 bit (Big Endian): AABB => AABB`
178
207
  - `uint16le` - `Unsigned 16 bit (Little Endian): AABB => BBAA`
@@ -206,7 +235,7 @@ This variable can be then later used in any formula for other parameters. E.g.,
206
235
 
207
236
  The following description was copied from [here](http://www.chipkin.com/how-real-floating-point-and-32-bit-data-is-encoded-in-modbus-rtu-messages/)
208
237
 
209
- The point-to-point Modbus protocol is a popular choice for RTU communications if for no other reason that its basic convenience. The protocol itself controls the interactions of each device on a Modbus network, how the device establishes a known address, how each device recognizes its messages and how basic information is extracted from the data. In essence, the protocol is the foundation of the entire Modbus network.
238
+ The point-to-point Modbus protocol is a popular choice for RTU communications if for no other reason than its basic convenience. The protocol itself controls the interactions of each device on a Modbus network, how the device establishes a known address, how each device recognizes its messages and how basic information is extracted from the data. In essence, the protocol is the foundation of the entire Modbus network.
210
239
 
211
240
  Such a convenience does not come without any complications, however, and Modbus RTU Message protocol is no exception.
212
241
  The protocol itself was designed based on devices with a 16-bit register length.
@@ -216,7 +245,7 @@ It is within these four bytes of data that single-precision floating point data
216
245
 
217
246
  ### The Importance of Byte Order
218
247
  Modbus itself does not define a floating point data type, but it is widely accepted that it implements 32-bit floating point data using the IEEE-754 standard.
219
- However, the IEEE standard has no clear definition of byte order of the data payload.
248
+ However, the IEEE standard has no clear definition of the byte order of the data payload.
220
249
  Therefore, the most important consideration when dealing with 32-bit data is that data is addressed in the proper order.
221
250
 
222
251
  For example, the number 123/456.00 as defined in the IEEE 754 standard for single-precision 32-bit floating point numbers appears as follows:
@@ -249,7 +278,7 @@ Given that the Modbus RTU message protocol is big-Endian, in order to successful
249
278
 
250
279
  As a rule of thumb, the family of a device’s microprocessor determines its endianness. Typically, the big-Endian style (the high-order byte is stored first, followed by the low-order byte) is generally found in CPUs designed with a Motorola processor. The little-Endian style (the low-order byte is stored first, followed by the high-order byte) is generally found in CPUs using the Intel architecture. It is a matter of personal perspective as to which style is considered ‘backwards’.
251
280
 
252
- If, however, byte order and endianness are not a configurable option, you will have to determine how to interpret the byte. This can be done requesting a known floating-point value from the slave. If an impossible value is returned, i.e., a number with a double-digit exponent or such, the byte ordering will most likely need modification.
281
+ If, however, byte order and endianness are not a configurable option, you will have to determine how to interpret the byte. This can be done by requesting a known floating-point value from the slave. If an impossible value is returned, i.e., a number with a double-digit exponent or such, the byte ordering will most likely need modification.
253
282
 
254
283
  ### Practical Help
255
284
  The FieldServer Modbus RTU drivers offer several function moves that handle 32-bit integers and 32-bit float values. More importantly, these function moves consider all different forms of byte sequencing. The following table shows the FieldServer function moves that copy two adjacent 16-bit registers to a 32-bit integer value.
@@ -301,22 +330,28 @@ The utility presents the decimal float value of 123456.00 as follows:
301
330
  One can then swap bytes and/or words to analyze what potential endianness issues may exist between Modbus RTU master and slave devices.
302
331
 
303
332
  ## Export / Import of registers
304
- With export / import functionality, you can convert all register data (only of one type) to a TSV (Tab separated values) file and back to easily copy data from one device to another or to edit register in Excel.
333
+ With export / import functionality, you can convert all register data (only of one type) to a TSV (Tab-separated values) file and back to easily copy data from one device to another or to edit register in Excel.
305
334
 
306
335
  You can share your schemas with other users in [modbus-templates,](https://github.com/ioBroker/modbus-templates) or you can find some register schemas there.
307
336
 
308
337
  ## Test
309
338
  There are some programs in folder `test` to test the TCP communication:
310
339
  - Ananas32/64 is a slave simulator (only holding registers and inputs, no coils and digital inputs)
311
- - RMMS is master simulator
312
- - mod_RSsim.exe is a slave simulator. It can be that you need [Microsoft Visual C++ 2008 SP1 Redistributable Package](https://www.microsoft.com/en-us/download/details.aspx?id=5582) to start it (because of Side-By-Side error).
340
+ - RMMS is a master simulator
341
+ - mod_RSsim.exe is a slave simulator. It can be that you need [Microsoft Visual C++ 2008 SP1 Redistributable Package](https://www.microsoft.com/en-us/download/details.aspx?id=5582) to start it (because of a Side-By-Side error).
313
342
 
314
343
  <!--
315
344
  ### **WORK IN PROGRESS**
316
345
  -->
317
346
  ## Changelog
347
+ ### 8.1.0 (2026-04-12)
348
+ * (@GermanBluefox) Added sanitizing of the values
349
+
350
+ ### 8.0.5 (2026-04-11)
351
+ * (@GermanBluefox) Fixed possible errors
352
+
318
353
  ### 8.0.3 (2026-02-17)
319
- * (@GermanBluefox) Set default value of slave to '0' and not to 0
354
+ * (@GermanBluefox) Set the default value of a slave to '0' and not to 0
320
355
  * (@GermanBluefox) Showed address 0
321
356
 
322
357
  ### 8.0.1 (2026-02-16)
@@ -339,18 +374,18 @@ There are some programs in folder `test` to test the TCP communication:
339
374
 
340
375
  ### 7.0.1 (2025-10-07)
341
376
  * (bluefox) Redesign of the configuration tabs
342
- * (bluefox) Added option to remove leading underscores in the object names
377
+ * (bluefox) Added an option to remove leading underscores in the object names
343
378
 
344
379
  ### 7.0.0 (2025-10-06)
345
380
  * (copilot) Improved Modbus error handling and fault tolerance - continue polling working devices even when others fail
346
381
  * (copilot) Fixes memory leak
347
- * (copilot) Added option to disable connection error logging to avoid log spam when devices are unavailable
348
- * (bluefox) Show values directly in configuration
382
+ * (copilot) Added an option to disable connection error logging to avoid log spam when devices are unavailable
383
+ * (bluefox) Show values directly in the configuration
349
384
  * (bluefox) Implemented TLS connection (master)
350
385
 
351
386
  ### 6.4.0 (2024-11-22)
352
387
  * (bluefox) Moved GUI compilation to vite
353
- * (bluefox) Added error message if the response length is invalid
388
+ * (bluefox) Added an error message if the response length is invalid
354
389
 
355
390
  ### 6.3.2 (2024-08-29)
356
391
  * (bluefox) Corrected the error with alignment of addresses
@@ -358,7 +393,7 @@ There are some programs in folder `test` to test the TCP communication:
358
393
  ### 6.3.0 (2024-08-28)
359
394
  * (Apollon77) Fix Timeout management to prevent leaking memory
360
395
  * (bluefox) Added information about connected clients in the server mode
361
- * (bluefox) Tried to fix error with aligning addresses
396
+ * (bluefox) Tried to fix the error with aligning addresses
362
397
  * (bluefox) GUI was migrated to admin 7
363
398
 
364
399
  ### 6.2.3 (2024-05-25)
@@ -374,7 +409,7 @@ There are some programs in folder `test` to test the TCP communication:
374
409
  ### 6.2.0 (2024-04-12)
375
410
  * (PLCHome) String based on 16-bit values big endian as well as little endian
376
411
  * (PLCHome) Raw data as a hex string
377
- * (PLCHome) Fix issue `stringle` was always converted to number for slave
412
+ * (PLCHome) Fix issue `stringle` was always converted to number for a slave
378
413
  * (PLCHome) Enable formula for strings and hex strings
379
414
 
380
415
  ### 6.1.0 (2023-12-14)
@@ -406,7 +441,7 @@ There are some programs in folder `test` to test the TCP communication:
406
441
 
407
442
  ### 5.0.0 (2022-05-11)
408
443
  * BREAKING: All space characters will be replaced with underscores now in the Objects IDs, not only the first one.
409
- * (Apollon77) Catch error reported by sentry when invalid Master port is entered
444
+ * (Apollon77) Catch error reported by sentry when the invalid Master port is entered
410
445
  * (bluefox) GUI migrated to mui-v5
411
446
 
412
447
  ### 4.0.4 (2022-03-25)
@@ -425,7 +460,7 @@ There are some programs in folder `test` to test the TCP communication:
425
460
 
426
461
  ### 3.4.14 (2021-08-31)
427
462
  * (nkleber78) Fixed issue with sorting
428
- * (bluefox) Corrected the calculations with scaling factor
463
+ * (bluefox) Corrected the calculations with a scaling factor
429
464
  * (bluefox) Read times were optimized
430
465
 
431
466
  ### 3.4.11 (2021-07-31)
@@ -433,13 +468,13 @@ There are some programs in folder `test` to test the TCP communication:
433
468
 
434
469
  ### 3.4.10 (2021-07-30)
435
470
  * (Apollon77) Make sure that slave reconnections at least wait 1000ms to allow old connectio to close properly
436
- * (bluefox) Corrected the error with write single registers
471
+ * (bluefox) Corrected the error with writing single registers
437
472
 
438
473
  ### 3.4.9 (2021-07-06)
439
474
  * (bluefox) Changed edit behaviour
440
475
 
441
476
  ### 3.4.8 (2021-06-24)
442
- * (Apollon77) Fix crash case on writing floats (Sentry IOBROKER-MODBUS-2D)
477
+ * (Apollon77) Fix a crash case on writing floats (Sentry IOBROKER-MODBUS-2D)
443
478
 
444
479
  ### 3.4.7 (2021-06-22)
445
480
  * (bluefox) Corrected addressing with aliases in GUI
@@ -457,7 +492,7 @@ There are some programs in folder `test` to test the TCP communication:
457
492
  ### 3.4.2 (2021-06-15)
458
493
  * (nkleber78) Corrected issue with the scale factors
459
494
  * (bluefox) New react GUI added
460
- * (bluefox) Add new option: Use only Write multiple registers, read interval
495
+ * (bluefox) Add a new option: Use only Write multiple registers, read interval
461
496
 
462
497
  ### 3.3.1 (2021-05-10)
463
498
  * (bluefox) fixed the configuration dialog for "input registers" in slave mode
@@ -465,18 +500,18 @@ There are some programs in folder `test` to test the TCP communication:
465
500
  ### 3.3.0 (2021-04-16)
466
501
  * (Apollon77) Allowed usage of write-only (no poll) states
467
502
  * (Apollon77/TmShaz) F Write multiple registers
468
- * (prog42) create states of type string with default value of type string
503
+ * (prog42) create states of type string with the default value of type string
469
504
 
470
505
  ### 3.2.6 (2021-03-05)
471
506
  * (Apollon77) Prevent a crash case (Sentry IOBROKER-MODBUS-20)
472
507
  * (Apollon77) Better handle invalid responses
473
508
 
474
509
  ### 3.2.4 (2021-01-30)
475
- * (Sierra83) also support ttyXRUSB0 style devices
510
+ * (Sierra83) also supports ttyXRUSB0 style devices
476
511
 
477
512
  ### 3.2.3 (2021-01-21)
478
513
  * (Apollon77) Catch value encoding error and do not crash adapter (Sentry IOBROKER-MODBUS-1W)
479
- * (Apollon77) add a meta object as instance object
514
+ * (Apollon77) add a meta-object as an instance object
480
515
 
481
516
  ### 3.2.2 (2020-12-15)
482
517
  * (Apollon77) prevent a rash case (Sentry IOBROKER-MODBUS-1S)
@@ -485,7 +520,7 @@ There are some programs in folder `test` to test the TCP communication:
485
520
  * (Apollon77) prevent a crash case (Sentry IOBROKER-MODBUS-1R)
486
521
 
487
522
  ### 3.2.0 (2020-12-09)
488
- * (nkleber78) Fixed formula where return keyword was missing
523
+ * (nkleber78) Fixed the formula where the return keyword was missing
489
524
 
490
525
  ### 3.1.13 (2020-12-07)
491
526
  * (nkleber78) Added the possibility to use formulas for values
@@ -497,7 +532,7 @@ There are some programs in folder `test` to test the TCP communication:
497
532
  * (nkleber78) Corrected: the exported data cannot be imported without modification
498
533
 
499
534
  ### 3.1.9 (2020-09-17)
500
- * (Apollon77) Prevent crash case (Sentry IOBROKER-MODBUS-1C)
535
+ * (Apollon77) Prevent a crash case (Sentry IOBROKER-MODBUS-1C)
501
536
 
502
537
  ### 3.1.7 (2020-07-23)
503
538
  * (Apollon77) Fix some Sentry crash reports (IOBROKER-MODBUS-N)
@@ -510,7 +545,7 @@ There are some programs in folder `test` to test the TCP communication:
510
545
 
511
546
  ### 3.1.4 (2020-06-24)
512
547
  * (Apollon77) Fix some Sentry crash reports (IOBROKER-MODBUS-4, IOBROKER-MODBUS-7, IOBROKER-MODBUS-6)
513
- * (Apollon77) Change the way adapter restarts when reconnections do not help
548
+ * (Apollon77) Change the way the adapter restarts when reconnections do not help
514
549
 
515
550
  ### 3.1.3 (2020-06-12)
516
551
  * (Apollon77) fix scheduled restart
@@ -544,7 +579,7 @@ There are some programs in folder `test` to test the TCP communication:
544
579
  * (Apollon77) Support for Node.js 12 added, Node.js 4 is no longer supported!
545
580
 
546
581
  ### 2.0.9 (2018-10-11)
547
- * (Bjoern3003) Write registers was corrected
582
+ * (Bjoern3003) Write registers were corrected
548
583
 
549
584
  ### 2.0.7 (2018-07-02)
550
585
  * (bluefox) The server mode was fixed
@@ -556,7 +591,7 @@ There are some programs in folder `test` to test the TCP communication:
556
591
  * (bluefox) Fixed the rounding of numbers
557
592
 
558
593
  ### 2.0.2 (2018-06-12)
559
- * (bluefox) The error with blocks reading was fixed
594
+ * (bluefox) The error with block reading was fixed
560
595
  * (bluefox) The block reading for discrete values was implemented
561
596
 
562
597
  ### 2.0.1 (2018-05-06)
@@ -579,7 +614,7 @@ There are some programs in folder `test` to test the TCP communication:
579
614
  * (bluefox) Create all states each after other
580
615
 
581
616
  ### 0.4.10 (2017-02-10)
582
- * (Apollon77) Do not recreate all data points on start of adapter
617
+ * (Apollon77) Do not recreate all data points at the start of the adapter
583
618
  * (ykuendig) Multiple optimization and wording fixes
584
619
 
585
620
  ### 0.4.9 (2016-12-20)
@@ -604,34 +639,34 @@ There are some programs in folder `test` to test the TCP communication:
604
639
  * (bluefox) Support of ModBus RTU over serial and over TCP (only slave)
605
640
 
606
641
  ### 0.3.11 (2016-08-18)
607
- * (Apollon77) Fix wrong byte count in loop
642
+ * (Apollon77) Fixed the wrong byte count in loop
608
643
 
609
644
  ### 0.3.10 (2016-02-01)
610
- * (bluefox) fix lost of history settings.
645
+ * (bluefox) fixed lost of history settings.
611
646
 
612
647
  ### 0.3.9 (2015-11-09)
613
- * (bluefox) Use always write_multiple_registers by write of holding registers.
648
+ * (bluefox) Used always write_multiple_registers by writing of holding registers.
614
649
 
615
650
  ### 0.3.7 (2015-11-02)
616
- * (bluefox) add special read/write mode if "Max read request length" is 1.
651
+ * (bluefox) added special read/write mode if "Max read request length" is 1.
617
652
 
618
653
  ### 0.3.6 (2015-11-01)
619
- * (bluefox) add cyclic write for holding registers (fix)
654
+ * (bluefox) added cyclic write for holding registers (fix)
620
655
 
621
656
  ### 0.3.5 (2015-10-31)
622
- * (bluefox) add cyclic write for holding registers
657
+ * (bluefox) added cyclic write for holding registers
623
658
 
624
659
  ### 0.3.4 (2015-10-28)
625
- * (bluefox) add doubles and fix uint64
660
+ * (bluefox) added doubles and fix uint64
626
661
 
627
662
  ### 0.3.3 (2015-10-27)
628
- * (bluefox) fix holding registers
663
+ * (bluefox) fixed holding registers
629
664
 
630
665
  ### 0.3.2 (2015-10-27)
631
- * (bluefox) fix import from text file
666
+ * (bluefox) fixed import from text file
632
667
 
633
668
  ### 0.3.1 (2015-10-26)
634
- * (bluefox) fix error with length of read block (master)
669
+ * (bluefox) fixed the error with the length of read block (master)
635
670
  * (bluefox) support of read blocks and maximal length of read request (master)
636
671
  * (bluefox) can define fields by import
637
672
 
@@ -644,7 +679,7 @@ There are some programs in folder `test` to test the TCP communication:
644
679
  * (bluefox) add different types for inputRegisters and for holding registers ONLY FOR MASTER
645
680
 
646
681
  ### 0.2.5 (2015-10-20)
647
- * (bluefox) fix names of objects if aliases used
682
+ * (bluefox) fix names of objects if aliases are used
648
683
 
649
684
  ### 0.2.4 (2015-10-19)
650
685
  * (bluefox) fix error add new values