Hello
Does anyone have an working modbus-profile for Nibe Modbus 40?
I've managed to get all registers except the signed32 registers working.
The response from modbus40 to the LM5 always return an CRC-error.
When testet with the RTU read test it also return CRC error when reading int 32 or when reading 2 int16 registers.......
This code works for 16bit registers:
{ "name": "Degree Minutes 16 bit", "bus_datatype": "int16", "type": "register", "address": 43005 , "datatype": "int16", "value_multiplier": 0.1, "writable": false },
But when trying to read a 32 bit it return error:
Tried this:
{ "name": "Tot optime compr EP14_r1", "bus_datatype": "uint32", "address": 43420, "read_count":2, "read_offset":43420, "type": "register", "datatype": "int16" },
What happens if you read 43421 as a single 16-bit register in Modbus RTU test? Usually, it should not allow reading the second register if two registers form a single 32-bit integer.
Have you tried increasing the timeout value for the device to 3 seconds when using a profile? You can do this in latest RC firmware in Modbus device settings.
Hello,
you must create log.set file by NibeModbus Manager and upload this to the nibe from USB storage.
Without this you cannot read multiple registers from Nibe ( more than 1 register ).
If you create log.set then nibe timeout is only 0,5 sec, maximum log.set registers is 20.
It worked like a charm when i used the log.set in the heatpump.
Now i read all registers without any error.
I must add that the manufacturer did not make it easy to integrate their device..........
15.03.2019, 17:42 (This post was last modified: 16.03.2019, 09:42 by Mrinj.)
Hi,
Would it be possible to control the heatpump via the modbus40 with Wiser/LM (like turn off the heat element) or you could only read the parameters from the heatpump?
16.04.2019, 07:28 (This post was last modified: 16.04.2019, 07:33 by merel.)
Hello erik.
You must create log.set by NibeModbus Manager with 32bit register definition ( if you havent log set with 32bit register, then nibe return crc error )
1. create log.set file with Nibe Modbus manager
2. save to usb storage
3. insert to nibe
4. Enable logging and set 1second.
Anyone managed to get homelynk to write registers to nibe modbus 40? I have a nibe heatpump and modbus 40, and I'm trying to reset alarms via modbus, but I can't get it to work. I've loaded the log.set file into my device and I'm able to read registers, but haven't found a way to write them. Anyone have a sample json profile?
You should set "write multiple" = true.
I don't use the log.set, because of the limit of 20 regs.
Very important to set the polling frequence to 1 sec, and timeout to 3sec when polling without log.set.
Have you had any trouble using more than 20 registers? I'm up to 19 registers now, but Id' like to try some more registers without constantly updating the log.set to the indoor unit.
(20.06.2019, 07:17)RagingBull Wrote: Have you had any trouble using more than 20 registers? I'm up to 19 registers now, but Id' like to try some more registers without constantly updating the log.set to the indoor unit.
Hi RagingBull.
You can read more than 20 registers but 32 bit registers must be in the log.set
01.07.2019, 06:47 (This post was last modified: 01.07.2019, 06:47 by merel.)
(27.06.2019, 17:15)PassivPluss Wrote: I am connecting to the Nibe Modbus 30 heat pump in next month on a project. Anybody has a good script for it and want to share ?
This is my example modbus json definition for modbus Visual mapper.
09.11.2019, 06:43 (This post was last modified: 09.11.2019, 15:52 by PassivPluss.)
Is it possible to use two json profiles on one slave rtu? Like one json with 20 most important values updated often by using read multiple registers in log set file and one json with polling every 1800 sec with less important info? Like running hours etc?
The modbus40 module reguire 2.1 sec between reading of single register. Is it possible to get more than 1 sec via json script?
Pooling interval is per device, you can set them differently but not individual registers. You can add read_delay parameter to your profile to delay the read between registers.
(11.11.2019, 09:32)Daniel. Wrote: Pooling interval is per device, you can set them differently but not individual registers. You can add read_delay parameter to your profile to delay the read between registers.
Nibe Modbus unfortunately limits to 2.1 sec between each request (parameters not in Log.set). I am trying to understand how to best handle this on the LM5. I have now tried to set read_delay to 2.2 sec in the modbus profile. I have also increased timeout to 15 sec, which seemed to solve my problem.
I have a list of 31 parameters. Polling time is set to 180 sec. so even with a 5 sec read_delay it should be able to get through all parameters before next request. On the server end it also looks good. I can see the timestamps for requests vary with 1 sec to 3 sec between them. Between open and close there is about 72 sec. which corresponds to an average time 2.4 sec between each of the 31 parameters (which seems to correspond well with the read_delay = 2.2).
Is this a good design? Is there any reason to "tune" the timeout to be as small as possible?
I may later split my profiles in two such that I can poll faster to some parameters (e.g. those set in Log.set) and very rarely on the rest, but for now, if this is stable, I leave it like this.