How to Use two or more CUL or CUN devices with MAX! EQ3 heating devices

Begonnen von chapelhill, 15 September 2015, 08:16:23

Vorheriges Thema - Nächstes Thema

chapelhill

Hi all.

Apologies for the non German posting!
I have asked in beginners questions but perhaps that was the wrong forum?
http://forum.fhem.de/index.php/topic,41084.0.html
I was using two MAX! EQ3 cubes to control my heating  which was working fine except for the losing settings problem, so I have flashed the cubes as CUN CUL devices.

Now the firmware has been released to convert the MAX cube to a CUL/CUN device I am sure there are going to be quite a few more people trying similar, but there was a significant increase in complexity in converting and using the CUN devices!

I have the first CUN device working but I cannot work out how to use the second CUN device as when I try to declare an additional CUL_MAX I get the error "There is already one CUL_MAX defined". I am trying to split the devices between CUN devices like we were able to with the CUBE configuration.

Does that mean we can only use one CUL device for the MAX protocol per FHEM server?
Do I have to have two FHEM servers to run this?
If we have too many devices on the one interface we will be severely limited by the 1% duty cycle when ever we need to change time zone/schedule etc?

There is the functionality for CUL_RFR to use as a range extender, but does that work with MAX protocol? Is/should that be required for using CUN devices which can be relocated around the house using a network connection?

I could not find any examples of FHEM.cfg with two CUL devices for MAX protocol, only the CUL_RFR example.

Many thanks
Regards
Chapelhill




John

Hi Chapelhill

Zitat
I have the first CUN device working but I cannot work out how to use the second CUN device as when I try to declare an additional CUL_MAX I get the error "There is already one CUL_MAX defined".

Can you show us the exact command that you've used.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

chapelhill

Hi, many thanks for the response.

This was the element of the configuration file:

From my experimentation it seems that the virtual device is the declaration of the CUL_MAX device and it is that device which has the duty cycle. To the CUL_MAX device you assign a CUL hardware device, so having additional CUL devices does not seem to be of any benefit (Unless using as a router but does that add further to the message duty cycle problem) as the software does not allow for the declaration of a second CUL_MAX device which would have logically provided the equivalent to a second cube. A MAX HeatingThermostat device can only be pared to one device/rf address so if your attached MAX! cube is out of credit you cannot communicate with it, but at least with the cubes you could have all devices within the same FHEM server.

#####testing for cul device (My original MAX Cube)
define testcul CUL ###.###.##.###:2323 0000
attr testcul rfmode MAX
attr testcul sendpool cun2,testcul
define FileLog_testcul FileLog ./log/testcul-%Y.log testcul
attr FileLog_testcul logtype text
attr FileLog_testcul room MAX


define cun2 CUL ###.###.##.###:2323 0000 (My second MAX! cube)
attr cun2 rfmode MAX
attr cun2 sendpool cun2,testcul
define FileLog_cun2 FileLog ./log/cun2-%Y.log cun2
attr FileLog_cun2 logtype text
attr FileLog_cun2 room MAX

##Defining the first CUL_MAX device this command works
define cm CUL_MAX 123456
attr cm IODev testcul

##define second CUL_MAX device with differing rfaddress, this is where we get the error "There is already one CUL_MAX defined"
define cma CUL_MAX 213456
attr cma IODev CUN2

John

Hi Chapelhill

beginning with line number 84 in module 14_CUL_MAX.pm we find following paragraph:

  if(exists($modules{CUL_MAX}{defptr})) {
    Log3 $hash, 1, "There is already one CUL_MAX defined";
    return "There is already one CUL_MAX defined";
  }


That means in my opinion only one single CUL_MAX-Device is supported.

Please wait a few days for reply by the module-maintainer Matthias Gehre.

If there is no response, try to contact him by P.M using a link to this thread.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

chapelhill

OK will wait, many,many thanks.
I have connected all devices to the one CUN, but struggle with the 1% duty cycle message limit when trying to do anything.

Regards
Chapelhill

Matthias Gehre

Hi,

the configuration was never tried by me and thus is basically unsupported. You can, of course, try yourself what happens.
If I remember correctly, the MAX devices themselves can use different IODevs (which was a CUBE or a CUL_MAX). You should be able to make
two CUL_MAX possible, too.
I would
0) Define two CUL_MAX
1) Remove the coded that leads to "There is already one CUL_MAX defined"
2) check if $modules{CUL_MAX}{defptr} appears anywhere in the code. For know, this is basically a singleton. If you
have multiple CUL_MAX, then every reference of $modules{CUL_MAX}{defptr} needs to be replaced to decide which of the CUL_MAX to use
3) Set the IODev of your MAX devices to one of the two CUL_MAX
4) See what happens, and report here

axc27

Hi Matthias,

I went for it, as I am in a similar situation. I built two nanoCUL to controll my MAX! thermostats. I am not focusing on credits, but I need two CUL to cover the whole are due to bad reception in one room. But as I have an additional WLAN router to cover this room, I have the CUL needed for that connected to the openwrt router and shared via ser2net.

So I did part of the steps you mentioned in your post, and it partially works ;-)
I covered steps 0), 1), 3), and 4). One additional thing (5) has to be done the will be detailed below.


How it behaves at the moment:
- both CUL are created as expected
- the MAX devices are attributed to the correct CUL_MAX
- When sending commands, the correct outgoing CUL is used (according to the logfile with "attr global verbose 5")

==> Unfortunately I can only receive messages from the CUL_MAX defined second. Hence I do not get an ACK for commands sent to the MAX devices in the coverage range of the CUL_MAX defined first. I checked this by exchanging the two devices in the config file.

==> FHEM starts seeing itself as a wallthermostat - which is fine. But maybe due to the problem of not parsing the commands received on the first of the two CUL_MAX, it can end up in a permanent loop trying to get an ACK from the second wallthermostat, burning all credits. But as I do not need to talk to myself here, I just set the two wallthermostats being the FHEM to ignore, which is the point (5) mentioned above.

What needs to be done:
I checked for other occurrences of "$modules{CUL_MAX}{defptr}" and found four, but was not sure how to make them device specific (and in which positions to do this).

"$modules{CUL_MAX}{defptr}" appears in the following 4 additional spots in "14_CUL_MAX.pm":

a) right next to the removed if clause checking whether there is already a CUL_MAX defined, in line 88:

  $modules{CUL_MAX}{defptr} = $hash;

This is within the subroutine CUL_MAX_Define($$) used to create the CUL_MAX. I would assume this to be fine here, as the subroutine is used to create the device. I assume $hash is some kind address to the CUL device to be used for creating the device. However, if $modules{CUL_MAX}{defptr} is set to the second CUL while the second CUL_MAX is created and stays like this, it might be necessary to change it here.

b) in line 117 in the subroutine to remove the CUL_MAX:

CUL_MAX_Undef($$)
{
  my ($hash, $name) = @_;
  RemoveInternalTimer($hash);
  delete($modules{CUL_MAX}{defptr});
  return undef;
}

This might have to be changed to correctly remove the devices, but shouldn't be crucial for operation in the beginning.

c) and twice in the subroutine CUL_MAX_Parse($$):

  my ($hash, $rmsg) = @_;

  if(!exists($modules{CUL_MAX}{defptr})) {
      Log3 $hash, 2, "No CUL_MAX defined";
      return "UNDEFINED CULMAX0 CUL_MAX 123456";
  }
  my $shash = $modules{CUL_MAX}{defptr};


The first one shouldn't be a problem, as it only checks whether there is _any_ CUL_MAX defined. Having more than one wouldn't hurt here. But the second one will be relevant. Here, the address of the CUL device to be used is taken from "$modules{CUL_MAX}{defptr}". If it has been written to the second one defined in the config file in line 88, it will only parse the replies received from the second device, if I get it correctly.


Hence, some changes need to be done to "14_CUL_MAX.pm" to make it compatible to more than one CUL_MAX. I am not able to do these changes, but I am willing to help and test, If someone tells me what to try.

Best,
Daniel

Matthias Gehre

Hi,

thank you for your investigations. I commited a patch that allows to use multiple CUL_MAX.
Make sure that
1) On every MAX device, you have attr IODev set to one of the CUL_MAX instances
2) On every CUL_MAX device, you have attr IODev set to one of the CUL instances

Please check if that works for you.

Cheers,
Matthias

axc27

Hi Matthias,

Thanks for your work! I did an update and experimented a bit. I do get messages from both CUL_MAX now. However I still get missing ACKs on one of the CUL_MAX. But the definition order is not detrimental anymore.
I attach a few logs, as I am not concentrated enough anymore to find out what causes it.

I have two CUL and corresponding CUL_MAX:

define Remote.nanoCUL868.DB CUL 172.16.12.3:27073 0000
attr Remote.nanoCUL868.DB icon cul
attr Remote.nanoCUL868.DB rfmode MAX

define Remote.nanoCUL868.WZ CUL 172.16.12.54:27076 0000
attr Remote.nanoCUL868.WZ icon cul
attr Remote.nanoCUL868.WZ rfmode MAX

define CUL.MAX.WZ CUL_MAX 123456
attr CUL.MAX.WZ IODev Remote.nanoCUL868.WZ

define CUL.MAX.DB CUL_MAX 123457
attr CUL.MAX.DB IODev Remote.nanoCUL868.DB


Most of the MAX!-Devices are seen better CUL.MAX.WZ, one is seen well by CUL.MAX.DB. But there is some cross-talk, both CUL_MAX sometimes see all of the MAX!-devices, (with bad RSSI).

The logs are for these two MAX! devices:

define MAX_120730 MAX HeatingThermostat 120730
attr MAX_120730 IODev CUL.MAX.WZ

define MAX_11d244 MAX HeatingThermostat 11d244
attr MAX_11d244 IODev CUL.MAX.DB



Sending messages to MAX_11d244 works fine (I didn't have the wallthermostats on ignore for this test):

2015.12.14 21:46:24 5: Cmd: >set MAX_11d244 desiredTemperature 16.0<
2015.12.14 21:46:24 5: MAX_Set: staying in auto mode
2015.12.14 21:46:24 5: CUL_MAX_Send: enqueuing 0b6c004012345711d2440020
2015.12.14 21:46:24 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:46:24 5: SW: X
2015.12.14 21:46:24 5: CUL/RAW (ReadAnswer): 21 3600
2015.12.14 21:46:24 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 3600
2015.12.14 21:46:24 5: Remote.nanoCUL868.DB sending Zs0b6c004012345711d2440020
2015.12.14 21:46:24 5: SW: Zs0b6c004012345711d2440020
2015.12.14 21:46:24 5: Triggering MAX_11d244 (1 changes)
2015.12.14 21:46:24 5: Notify loop for MAX_11d244 desiredTemperature 16.0
2015.12.14 21:46:24 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:46:25 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:46:25 5: CUL/RAW: /Z0B6C0040123
2015.12.14 21:46:25 5: CUL/RAW: Z0B6C0040123/45711D244002
2015.12.14 21:46:25 5: CUL/RAW: Z0B6C004012345711D244002/0F6
2015.12.14 21:46:25 4: CUL_Parse: Remote.nanoCUL868.WZ Z0B6C004012345711D2440020F6 -79
2015.12.14 21:46:25 5: Remote.nanoCUL868.WZ dispatch Z0B6C004012345711D2440020
2015.12.14 21:46:25 5: CUL_MAX_Parse: len 11, msgcnt 6C, msgflag 00, msgTypeRaw SetTemperature, src 123457, dst 11d244, groupid 0, payload 20
2015.12.14 21:46:25 5: CUL_MAX_Parse: rssi: -79
2015.12.14 21:46:25 5: CUL.MAX.WZ dispatch MAX,0,SetTemperature,123457,20
2015.12.14 21:46:25 5: MAX_Parse MAX,0,SetTemperature,123457,20
2015.12.14 21:46:25 5: SetTemperature mode  auto, desiredTemperature 16
2015.12.14 21:46:25 5: Triggering MAX_123457 (4 changes)
2015.12.14 21:46:25 5: Notify loop for MAX_123457 mode: auto
2015.12.14 21:46:25 5: CUL/RAW: /Z0E6
2015.12.14 21:46:25 5: CUL/RAW: Z0E6/C020
2015.12.14 21:46:25 5: CUL/RAW: Z0E6C020/211D2441
2015.12.14 21:46:25 5: CUL/RAW: Z0E6C020211D2441/2345
2015.12.14 21:46:25 5: CUL/RAW: Z0E6C020211D24412345/700
2015.12.14 21:46:25 5: CUL/RAW: Z0E6C020211D24412345700/0118
2015.12.14 21:46:25 5: CUL/RAW: Z0E6C020211D244123457000118/0020
2015.12.14 21:46:25 5: CUL/RAW: Z0E6C020211D2441234570001180020/29
2015.12.14 21:46:25 4: CUL_Parse: Remote.nanoCUL868.DB Z0E6C020211D244123457000118002029 -53.5
2015.12.14 21:46:25 5: Remote.nanoCUL868.DB dispatch Z0E6C020211D2441234570001180020
2015.12.14 21:46:25 5: CUL_MAX_Parse: len 14, msgcnt 6C, msgflag 02, msgTypeRaw Ack, src 11d244, dst 123457, groupid 0, payload 01180020
2015.12.14 21:46:25 5: CUL_MAX_Parse: rssi: -53.5
2015.12.14 21:46:25 5: CUL.MAX.DB dispatch MAX,1,Ack,11d244,01180020
2015.12.14 21:46:25 5: MAX_Parse MAX,1,Ack,11d244,01180020
2015.12.14 21:46:25 5: MAX_Parse MAX,1,ThermostatState,11d244,180020
2015.12.14 21:46:25 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 0 %, desiredTemperature 16, until , curTemp
2015.12.14 21:46:25 5: Triggering MAX_11d244 (6 changes)
2015.12.14 21:46:25 5: Notify loop for MAX_11d244 mode: auto
2015.12.14 21:46:25 5: Got matching ack
2015.12.14 21:46:25 5: CUL_MAX_SendQueueHandler: 1 items in queue

2015.12.14 21:47:48 5: CUL/RAW: /Z0F
2015.12.14 21:47:48 5: CUL/RAW: Z0F/000
2015.12.14 21:47:48 5: CUL/RAW: Z0F000/46011D24
2015.12.14 21:47:48 5: CUL/RAW: Z0F00046011D24/4000
2015.12.14 21:47:48 5: CUL/RAW: Z0F00046011D244000/0000
2015.12.14 21:47:48 5: CUL/RAW: Z0F00046011D2440000000/0180
2015.12.14 21:47:48 5: CUL/RAW: Z0F00046011D24400000000180/020
2015.12.14 21:47:48 5: CUL/RAW: Z0F00046011D24400000000180020/00CB
2015.12.14 21:47:48 5: CUL/RAW: Z0F00046011D2440000000018002000CB/29
2015.12.14 21:47:48 4: CUL_Parse: Remote.nanoCUL868.DB Z0F00046011D2440000000018002000CB29 -53.5
2015.12.14 21:47:48 5: Remote.nanoCUL868.DB dispatch Z0F00046011D2440000000018002000CB
2015.12.14 21:47:48 5: CUL_MAX_Parse: len 15, msgcnt 00, msgflag 04, msgTypeRaw ThermostatState, src 11d244, dst 000000, groupid 0, payload 18002000CB
2015.12.14 21:47:48 5: CUL_MAX_Parse: rssi: -53.5
2015.12.14 21:47:48 5: CUL.MAX.DB dispatch MAX,0,ThermostatState,11d244,18002000CB
2015.12.14 21:47:48 5: MAX_Parse MAX,0,ThermostatState,11d244,18002000CB
2015.12.14 21:47:48 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 0 %, desiredTemperature 16, until , curTemp 20.3
2015.12.14 21:47:48 5: Triggering MAX_11d244 (7 changes)
2015.12.14 21:47:48 5: Notify loop for MAX_11d244 mode: auto


Code is sent from Remote.nanoCUL868.DB, ACK received from Remote.nanoCUL868.DB.


But sending to a device attached to Remote.nanoCUL868.WZ does lead to several resend attempts:

2015.12.14 21:48:22 5: Cmd: >set MAX_120730 desiredTemperature 20.5<
2015.12.14 21:48:22 5: MAX_Set: staying in auto mode
2015.12.14 21:48:22 5: CUL_MAX_Send: enqueuing 0bbc00401234561207300029
2015.12.14 21:48:22 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:22 5: SW: X
2015.12.14 21:48:22 5: CUL/RAW (ReadAnswer): 21 1572
2015.12.14 21:48:22 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 1572
2015.12.14 21:48:22 5: Remote.nanoCUL868.WZ sending Zs0bbc00401234561207300029
2015.12.14 21:48:22 5: SW: Zs0bbc00401234561207300029
2015.12.14 21:48:22 5: Triggering MAX_120730 (1 changes)
2015.12.14 21:48:22 5: Notify loop for MAX_120730 desiredTemperature 20.5
2015.12.14 21:48:22 4: name: /fhem?cmd=set%20MAX_120730%20desiredTemperature%2020.5&XHR=1&fw_id=409 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
2015.12.14 21:48:23 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:23 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:23 5: CUL/RAW: /Z
2015.12.14 21:48:23 5: CUL/RAW: Z/0BBC
2015.12.14 21:48:23 5: CUL/RAW: Z0BBC/00401234
2015.12.14 21:48:23 5: CUL/RAW: Z0BBC00401234/561
2015.12.14 21:48:23 5: CUL/RAW: Z0BBC00401234561/2073
2015.12.14 21:48:23 5: CUL/RAW: Z0BBC004012345612073/0002
2015.12.14 21:48:23 5: CUL/RAW: Z0BBC0040123456120730002/9F6
2015.12.14 21:48:23 4: CUL_Parse: Remote.nanoCUL868.DB Z0BBC00401234561207300029F6 -79
2015.12.14 21:48:23 5: Remote.nanoCUL868.DB dispatch Z0BBC00401234561207300029
2015.12.14 21:48:23 5: CUL_MAX_Parse: len 11, msgcnt BC, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 120730, groupid 0, payload 29
2015.12.14 21:48:23 5: CUL_MAX_Parse: rssi: -79
2015.12.14 21:48:23 5: CUL.MAX.DB dispatch MAX,0,SetTemperature,123456,29
2015.12.14 21:48:23 5: MAX_Parse MAX,0,SetTemperature,123456,29
2015.12.14 21:48:23 5: SetTemperature mode  auto, desiredTemperature 20.5
2015.12.14 21:48:23 5: Triggering MAX_123456 (4 changes)
2015.12.14 21:48:23 5: Notify loop for MAX_123456 mode: auto
2015.12.14 21:48:24 5: CUL/RAW: /Z0E
2015.12.14 21:48:24 5: CUL/RAW: /Z0EBC0
2015.12.14 21:48:24 5: CUL/RAW: Z0E/BC020212
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC0/20212073
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC020212/07301234
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC02021207301234/560
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC020212073/01234560001
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC02021207301234560/00118192
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC0202120730123456000118192/9DE
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC02021207301234560001/18192914
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC02021207301234560001181929DE^M/
2015.12.14 21:48:24 4: CUL_Parse: Remote.nanoCUL868.DB Z0EBC02021207301234560001181929DE -91
2015.12.14 21:48:24 5: Remote.nanoCUL868.DB dispatch Z0EBC02021207301234560001181929
2015.12.14 21:48:24 5: CUL_MAX_Parse: len 14, msgcnt BC, msgflag 02, msgTypeRaw Ack, src 120730, dst 123456, groupid 0, payload 01181929
2015.12.14 21:48:24 5: CUL_MAX_Parse: rssi: -91
2015.12.14 21:48:24 5: CUL.MAX.DB dispatch MAX,0,Ack,120730,01181929
2015.12.14 21:48:24 5: MAX_Parse MAX,0,Ack,120730,01181929
2015.12.14 21:48:24 5: MAX_Parse MAX,0,ThermostatState,120730,181929
2015.12.14 21:48:24 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 25 %, desiredTemperature 20.5, until , curTemp
2015.12.14 21:48:24 5: Triggering MAX_120730 (6 changes)
2015.12.14 21:48:24 5: Notify loop for MAX_120730 mode: auto
2015.12.14 21:48:24 5: CUL/RAW: Z0EBC0202120730123456000118192914/
2015.12.14 21:48:24 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EBC0202120730123456000118192914 -64
2015.12.14 21:48:24 5: Remote.nanoCUL868.WZ dispatch Z0EBC02021207301234560001181929
2015.12.14 21:48:24 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:24 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:25 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:25 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:26 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:26 5: CUL_MAX_SendQueueHandler: Retry 120730 for 0bbc00401234561207300029 count: 3
2015.12.14 21:48:29 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:29 5: SW: X
2015.12.14 21:48:29 5: CUL/RAW (ReadAnswer): 21 1469
2015.12.14 21:48:29 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 1469
2015.12.14 21:48:29 5: Remote.nanoCUL868.WZ sending Zs0bbc00401234561207300029
2015.12.14 21:48:29 5: SW: Zs0bbc00401234561207300029
2015.12.14 21:48:29 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:30 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:30 5: CUL/RAW: /Z
2015.12.14 21:48:30 5: CUL/RAW: Z/0BBC
2015.12.14 21:48:30 5: CUL/RAW: Z0BBC/0040123
2015.12.14 21:48:30 5: CUL/RAW: Z0BBC0040123/4561
2015.12.14 21:48:30 5: CUL/RAW: Z0BBC00401234561/2073
2015.12.14 21:48:30 5: CUL/RAW: Z0BBC004012345612073/0002
2015.12.14 21:48:30 5: CUL/RAW: Z0BBC0040123456120730002/9F6
2015.12.14 21:48:30 5: CUL/RAW: Z0BBC00401234561207300029F6^M/
2015.12.14 21:48:30 4: CUL_Parse: Remote.nanoCUL868.DB Z0BBC00401234561207300029F6 -79
2015.12.14 21:48:30 5: Remote.nanoCUL868.DB dispatch Z0BBC00401234561207300029
2015.12.14 21:48:30 5: CUL_MAX_Parse: len 11, msgcnt BC, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 120730, groupid 0, payload 29
2015.12.14 21:48:30 5: CUL_MAX_Parse: rssi: -79
2015.12.14 21:48:30 5: CUL.MAX.DB dispatch MAX,0,SetTemperature,123456,29
2015.12.14 21:48:30 5: MAX_Parse MAX,0,SetTemperature,123456,29
2015.12.14 21:48:30 5: SetTemperature mode  auto, desiredTemperature 20.5
2015.12.14 21:48:30 5: Triggering MAX_123456 (4 changes)
2015.12.14 21:48:30 5: Notify loop for MAX_123456 mode: auto
2015.12.14 21:48:30 5: CUL/RAW: /Z
2015.12.14 21:48:30 5: CUL/RAW: Z/0EBC0202
2015.12.14 21:48:30 5: CUL/RAW: /Z0EBC0202
2015.12.14 21:48:30 5: CUL/RAW: Z0EBC0202/12073012
2015.12.14 21:48:30 5: CUL/RAW: Z0EBC0202/12073012
2015.12.14 21:48:30 5: CUL/RAW: Z0EBC020212073012/3456000
2015.12.14 21:48:30 5: CUL/RAW: Z0EBC020212073012/34560001
2015.12.14 21:48:30 5: CUL/RAW: Z0EBC0202120730123456000/1181929DC
2015.12.14 21:48:30 4: CUL_Parse: Remote.nanoCUL868.DB Z0EBC02021207301234560001181929DC -92
2015.12.14 21:48:30 5: Remote.nanoCUL868.DB dispatch Z0EBC02021207301234560001181929
2015.12.14 21:48:30 5: CUL_MAX_Parse: len 14, msgcnt BC, msgflag 02, msgTypeRaw Ack, src 120730, dst 123456, groupid 0, payload 01181929
2015.12.14 21:48:30 5: CUL_MAX_Parse: rssi: -92
2015.12.14 21:48:30 5: CUL.MAX.DB dispatch MAX,0,Ack,120730,01181929
2015.12.14 21:48:30 5: MAX_Parse MAX,0,Ack,120730,01181929
2015.12.14 21:48:30 5: MAX_Parse MAX,0,ThermostatState,120730,181929
2015.12.14 21:48:30 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 25 %, desiredTemperature 20.5, until , curTemp
2015.12.14 21:48:30 5: Triggering MAX_120730 (6 changes)
2015.12.14 21:48:30 5: Notify loop for MAX_120730 mode: auto
2015.12.14 21:48:30 5: CUL/RAW: Z0EBC02021207301234560001/18192915
2015.12.14 21:48:30 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EBC0202120730123456000118192915 -63.5
2015.12.14 21:48:30 5: Remote.nanoCUL868.WZ dispatch Z0EBC02021207301234560001181929
2015.12.14 21:48:30 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:31 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:31 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:32 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:32 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:32 5: CUL_MAX_SendQueueHandler: Retry 120730 for 0bbc00401234561207300029 count: 2
2015.12.14 21:48:35 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:35 5: SW: X
2015.12.14 21:48:35 5: CUL/RAW (ReadAnswer): 21 1366
2015.12.14 21:48:35 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 1366
2015.12.14 21:48:35 5: Remote.nanoCUL868.WZ sending Zs0bbc00401234561207300029
2015.12.14 21:48:35 5: SW: Zs0bbc00401234561207300029
2015.12.14 21:48:36 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:36 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:36 5: CUL/RAW: /Z0BB
2015.12.14 21:48:36 5: CUL/RAW: Z0BB/C0040123
2015.12.14 21:48:37 5: CUL/RAW: Z0BBC0040123/456
2015.12.14 21:48:37 5: CUL/RAW: Z0BBC0040123456/12073000
2015.12.14 21:48:37 5: CUL/RAW: Z0BBC004012345612073000/29F7
2015.12.14 21:48:37 4: CUL_Parse: Remote.nanoCUL868.DB Z0BBC00401234561207300029F7 -78.5
2015.12.14 21:48:37 5: Remote.nanoCUL868.DB dispatch Z0BBC00401234561207300029
2015.12.14 21:48:37 5: CUL_MAX_Parse: len 11, msgcnt BC, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 120730, groupid 0, payload 29
2015.12.14 21:48:37 5: CUL_MAX_Parse: rssi: -78.5
2015.12.14 21:48:37 5: CUL.MAX.DB dispatch MAX,0,SetTemperature,123456,29
2015.12.14 21:48:37 5: MAX_Parse MAX,0,SetTemperature,123456,29
2015.12.14 21:48:37 5: SetTemperature mode  auto, desiredTemperature 20.5
2015.12.14 21:48:37 5: Triggering MAX_123456 (4 changes)
2015.12.14 21:48:37 5: Notify loop for MAX_123456 mode: auto
2015.12.14 21:48:37 5: CUL/RAW: /Z0EB
2015.12.14 21:48:37 5: CUL/RAW: /Z0EBC0202
2015.12.14 21:48:37 5: CUL/RAW: Z0EB/C02021207301
2015.12.14 21:48:37 5: CUL/RAW: Z0EBC0202/12073012
2015.12.14 21:48:37 5: CUL/RAW: Z0EBC02021207301/2345600
2015.12.14 21:48:37 5: CUL/RAW: Z0EBC020212073012/34560001
2015.12.14 21:48:37 5: CUL/RAW: Z0EBC020212073012345600/01181929
2015.12.14 21:48:37 5: CUL/RAW: Z0EBC02021207301234560001/1819291
2015.12.14 21:48:37 5: CUL/RAW: Z0EBC02021207301234560001181929/DB
2015.12.14 21:48:37 4: CUL_Parse: Remote.nanoCUL868.DB Z0EBC02021207301234560001181929DB -92.5
2015.12.14 21:48:37 5: Remote.nanoCUL868.DB dispatch Z0EBC02021207301234560001181929
2015.12.14 21:48:37 5: CUL_MAX_Parse: len 14, msgcnt BC, msgflag 02, msgTypeRaw Ack, src 120730, dst 123456, groupid 0, payload 01181929
2015.12.14 21:48:37 5: CUL_MAX_Parse: rssi: -92.5
2015.12.14 21:48:37 5: CUL.MAX.DB dispatch MAX,0,Ack,120730,01181929
2015.12.14 21:48:37 5: MAX_Parse MAX,0,Ack,120730,01181929
2015.12.14 21:48:37 5: MAX_Parse MAX,0,ThermostatState,120730,181929
2015.12.14 21:48:37 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 25 %, desiredTemperature 20.5, until , curTemp
2015.12.14 21:48:37 5: Triggering MAX_120730 (6 changes)
2015.12.14 21:48:37 5: Notify loop for MAX_120730 mode: auto
2015.12.14 21:48:37 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_120730' received. Device not monitored.
2015.12.14 21:48:37 5: CUL/RAW: Z0EBC020212073012345600011819291/5
2015.12.14 21:48:37 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EBC0202120730123456000118192915 -63.5
2015.12.14 21:48:37 5: Remote.nanoCUL868.WZ dispatch Z0EBC02021207301234560001181929
2015.12.14 21:48:37 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:37 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:38 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:38 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:39 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:39 5: CUL_MAX_SendQueueHandler: Retry 120730 for 0bbc00401234561207300029 count: 1
2015.12.14 21:48:42 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:42 5: SW: X
2015.12.14 21:48:42 5: CUL/RAW (ReadAnswer): 21 1263
2015.12.14 21:48:42 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 1263
2015.12.14 21:48:42 5: Remote.nanoCUL868.WZ sending Zs0bbc00401234561207300029
2015.12.14 21:48:42 5: SW: Zs0bbc00401234561207300029
2015.12.14 21:48:42 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:43 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:43 5: CUL/RAW: /Z0
2015.12.14 21:48:43 5: CUL/RAW: Z0/BBC00401
2015.12.14 21:48:43 5: CUL/RAW: Z0BBC00401/2345
2015.12.14 21:48:43 5: CUL/RAW: Z0BBC004012345/61207300
2015.12.14 21:48:43 5: CUL/RAW: Z0BBC00401234561207300/029F6
2015.12.14 21:48:43 4: CUL_Parse: Remote.nanoCUL868.DB Z0BBC00401234561207300029F6 -79
2015.12.14 21:48:43 5: Remote.nanoCUL868.DB dispatch Z0BBC00401234561207300029
2015.12.14 21:48:43 5: CUL_MAX_Parse: len 11, msgcnt BC, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 120730, groupid 0, payload 29
2015.12.14 21:48:43 5: CUL_MAX_Parse: rssi: -79
2015.12.14 21:48:43 5: CUL.MAX.DB dispatch MAX,0,SetTemperature,123456,29
2015.12.14 21:48:43 5: MAX_Parse MAX,0,SetTemperature,123456,29
2015.12.14 21:48:43 5: SetTemperature mode  auto, desiredTemperature 20.5
2015.12.14 21:48:43 5: Triggering MAX_123456 (4 changes)
2015.12.14 21:48:43 5: Notify loop for MAX_123456 mode: auto
2015.12.14 21:48:43 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:44 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:44 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:45 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:45 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.14 21:48:45 2: CUL_MAX_SendQueueHandler: Missing ack from 120730 for 0bbc00401234561207300029
2015.12.14 21:48:45 5: Triggering CUL.MAX.WZ (1 changes)
2015.12.14 21:48:45 5: Notify loop for CUL.MAX.WZ packetsLost: 93
2015.12.14 21:48:59 5: CUL/RAW: /Z
2015.12.14 21:48:59 5: CUL/RAW: Z/0F000460
2015.12.14 21:48:59 5: CUL/RAW: /Z0F0004601223CE00
2015.12.14 21:48:59 5: CUL/RAW: Z0F000460/1223CE000000
2015.12.14 21:48:59 5: CUL/RAW: Z0F0004601223CE000000/001
2015.12.14 21:48:59 5: CUL/RAW: Z0F0004601223CE00/000000180B2A
2015.12.14 21:48:59 5: CUL/RAW: Z0F0004601223CE000000001/80B2A00E
2015.12.14 21:48:59 5: CUL/RAW: Z0F0004601223CE00000000180B2A/00E305
2015.12.14 21:48:59 4: CUL_Parse: Remote.nanoCUL868.WZ Z0F0004601223CE00000000180B2A00E305 -71.5
2015.12.14 21:48:59 5: Remote.nanoCUL868.WZ dispatch Z0F0004601223CE00000000180B2A00E3
2015.12.14 21:48:59 5: CUL_MAX_Parse: len 15, msgcnt 00, msgflag 04, msgTypeRaw ThermostatState, src 1223ce, dst 000000, groupid 0, payload 180B2A00E3
2015.12.14 21:48:59 5: CUL_MAX_Parse: rssi: -71.5
2015.12.14 21:48:59 5: CUL.MAX.WZ dispatch MAX,0,ThermostatState,1223ce,180B2A00E3
2015.12.14 21:48:59 5: MAX_Parse MAX,0,ThermostatState,1223ce,180B2A00E3
2015.12.14 21:48:59 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 11 %, desiredTemperature 21, until , curTemp 22.7
2015.12.14 21:48:59 5: Triggering MAX_1223ce (7 changes)
2015.12.14 21:48:59 5: Notify loop for MAX_1223ce mode: auto
2015.12.14 21:48:59 5: CUL/RAW: Z0F0004601223CE00000000180B2A00E/3D4
2015.12.14 21:48:59 4: CUL_Parse: Remote.nanoCUL868.DB Z0F0004601223CE00000000180B2A00E3D4 -96
2015.12.14 21:48:59 5: Remote.nanoCUL868.DB dispatch Z0F0004601223CE00000000180B2A00E3
2015.12.14 21:50:55 5: CUL/RAW: /Z0F000
2015.12.14 21:50:55 5: CUL/RAW: Z0F000/4601
2015.12.14 21:50:55 5: CUL/RAW: Z0F0004601/20730000
2015.12.14 21:50:55 5: CUL/RAW: /Z0F000460120730000
2015.12.14 21:50:55 5: CUL/RAW: Z0F000460120730000/0000018
2015.12.14 21:50:55 5: CUL/RAW: Z0F000460120730000/00000181
2015.12.14 21:50:55 5: CUL/RAW: Z0F0004601207300000000018/132900DF
2015.12.14 21:50:55 5: CUL/RAW: Z0F00046012073000000000181/32900DF1
2015.12.14 21:50:55 5: CUL/RAW: Z0F0004601207300000000018132900DF/DA
2015.12.14 21:50:55 4: CUL_Parse: Remote.nanoCUL868.DB Z0F0004601207300000000018132900DFDA -93
2015.12.14 21:50:55 5: Remote.nanoCUL868.DB dispatch Z0F0004601207300000000018132900DF
2015.12.14 21:50:55 5: CUL_MAX_Parse: len 15, msgcnt 00, msgflag 04, msgTypeRaw ThermostatState, src 120730, dst 000000, groupid 0, payload 18132900DF
2015.12.14 21:50:55 5: CUL_MAX_Parse: rssi: -93
2015.12.14 21:50:55 5: CUL.MAX.DB dispatch MAX,0,ThermostatState,120730,18132900DF
2015.12.14 21:50:55 5: MAX_Parse MAX,0,ThermostatState,120730,18132900DF
2015.12.14 21:50:55 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 19 %, desiredTemperature 20.5, until , curTemp 22.3
2015.12.14 21:50:55 5: Triggering MAX_120730 (7 changes)
2015.12.14 21:50:55 5: Notify loop for MAX_120730 mode: auto
2015.12.14 21:50:55 5: CUL/RAW: Z0F0004601207300000000018132900DF1/5
2015.12.14 21:50:55 4: CUL_Parse: Remote.nanoCUL868.WZ Z0F0004601207300000000018132900DF15 -63.5
2015.12.14 21:50:55 5: Remote.nanoCUL868.WZ dispatch Z0F0004601207300000000018132900DF


The message is sent correctly from Remote.nanoCUL868.WZ, but the Ack is received with a bad RSSI from the other CUL first:

21:48:24 4: CUL_Parse: Remote.nanoCUL868.DB Z0EBC02021207301234560001181929DE -91

and decoded correctly:

21:48:24 5: CUL.MAX.DB dispatch MAX,0,Ack,120730,01181929


While the same message is received shortly after that with better RSSI from

21:48:24 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EBC0202120730123456000118192914 -64

this message doesn't seem to be decoded and the CUL_MAX_SendQueueHandler goes into a resend...

As said, exchanging the order of the CUL definitions did not change anything.
I do not fully get why it works one way but not the other. One of my two openwrt routers is faster than the other, hence the messages from Remote.nanoCUL868.DB will be faster most of the time. This might be why it works on this one. Maybe I just need to increase the time to wait for an Ack a bit - or accept an Ack from both CUL...

Best,
Daniel


axc27

Just to clarify that I do get messages decoded from both CUL the details of the thermostat that I posted going into resend:


CUL.MAX.DB_MSGCNT   36
CUL.MAX.DB_TIME     2015-12-15 21:14:47
CUL.MAX.WZ_MSGCNT   7
CUL.MAX.WZ_TIME     2015-12-15 19:15:03
DEF                 HeatingThermostat 120730
IODev               CUL.MAX.WZ
LASTInputDev        CUL.MAX.DB
MSGCNT              43
NAME                MAX_120730


It does get its messages from both CUL.

Best,
Daniel

Wzut

@Daniel , I am not sure if this can solve any of your problems but did you test attr CUL sendpool like chapelhill did it in his second post ?

Zitatdefine testcul CUL ###.###.##.###:2323 0000
attr testcul rfmode MAX
attr testcul sendpool cun2,testcul

define cun2 CUL ###.###.##.###:2323 0000 (My second MAX! cube)
attr cun2 rfmode MAX
attr cun2 sendpool cun2,testcul
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

axc27

good point...

Tried the sendpool (had the commands ready in the cfg as I had tried it earlier), unfortunately it doesn't help.

I did try a few things step by step - this time with a different thermostat also attributed to the CUL.MAX.WZ.

a) only Remote.nanoCUL868.WZ defined, only CUL.MAX.WZ defined as CLUL_MAX (only one CUL_MAX)

2015.12.16 22:09:01 5: Cmd: >set MAX_11cf54 desiredTemperature 17.0<
2015.12.16 22:09:01 5: MAX_Set: staying in auto mode
2015.12.16 22:09:01 5: CUL_MAX_Send: enqueuing 0bc8004012345611cf540022
2015.12.16 22:09:01 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 22:09:01 5: SW: X
2015.12.16 22:09:01 5: CUL/RAW (ReadAnswer): 21 3493

2015.12.16 22:09:01 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 3493
2015.12.16 22:09:01 5: Remote.nanoCUL868.WZ sending Zs0bc8004012345611cf540022
2015.12.16 22:09:01 5: SW: Zs0bc8004012345611cf540022
2015.12.16 22:09:01 5: Triggering MAX_11cf54 (1 changes)
2015.12.16 22:09:01 5: Notify loop for MAX_11cf54 desiredTemperature 17.0
2015.12.16 22:09:01 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 22:09:01 4: name: /fhem?cmd=set%20MAX_11cf54%20desiredTemperature%2017.0&XHR=1&fw_id=383 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.12.16 22:09:01 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 22:09:02 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 22:09:02 5: CUL/RAW: /Z
2015.12.16 22:09:02 5: CUL/RAW: Z/0EC8
2015.12.16 22:09:02 5: CUL/RAW: Z0EC8/020211C
2015.12.16 22:09:02 5: CUL/RAW: Z0EC8020211C/F5412345
2015.12.16 22:09:02 5: CUL/RAW: Z0EC8020211CF5412345/60001180
2015.12.16 22:09:02 5: CUL/RAW: Z0EC8020211CF541234560001180/0221
2015.12.16 22:09:02 5: CUL/RAW: Z0EC8020211CF5412345600011800221/9

2015.12.16 22:09:02 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EC8020211CF54123456000118002219 -61.5
2015.12.16 22:09:02 5: Remote.nanoCUL868.WZ dispatch Z0EC8020211CF541234560001180022
2015.12.16 22:09:02 5: CUL_MAX_Parse: len 14, msgcnt C8, msgflag 02, msgTypeRaw Ack, src 11cf54, dst 123456, groupid 0, payload 01180022
2015.12.16 22:09:02 5: CUL_MAX_Parse: rssi: -61.5
2015.12.16 22:09:02 5: CUL.MAX.WZ dispatch MAX,1,Ack,11cf54,01180022
2015.12.16 22:09:02 5: MAX_Parse MAX,1,Ack,11cf54,01180022
2015.12.16 22:09:02 5: MAX_Parse MAX,1,ThermostatState,11cf54,180022
2015.12.16 22:09:02 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 0 %, desiredTemperature 17, until , curTemp
2015.12.16 22:09:02 5: Triggering MAX_11cf54 (6 changes)
2015.12.16 22:09:02 5: Notify loop for MAX_11cf54 mode: auto
2015.12.16 22:09:02 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 22:09:02 5: Got matching ack
2015.12.16 22:09:02 5: CUL_MAX_SendQueueHandler: 1 items in queue

everything works fine and as expected.

b) both CUL defined as MAX devices in a sendpool, only CUL.MAX.WZ defined as CLUL_MAX (only one CUL_MAX)

2015.12.16 22:02:52 5: Cmd: >set MAX_11cf54 desiredTemperature 18.0<
2015.12.16 22:02:52 5: MAX_Set: staying in auto mode
2015.12.16 22:02:52 5: CUL_MAX_Send: enqueuing 0bc7004012345611cf540024
2015.12.16 22:02:52 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 22:02:52 5: SW: X
2015.12.16 22:02:52 5: CUL/RAW (ReadAnswer): 21 3234

2015.12.16 22:02:52 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 3234
2015.12.16 22:02:52 5: Remote.nanoCUL868.WZ sending Zs0bc7004012345611cf540024
2015.12.16 22:02:52 5: SW: Zs0bc7004012345611cf540024
2015.12.16 22:02:52 5: Triggering MAX_11cf54 (1 changes)
2015.12.16 22:02:52 5: Notify loop for MAX_11cf54 desiredTemperature 18.0
2015.12.16 22:02:52 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 22:02:52 4: name: /fhem?cmd=set%20MAX_11cf54%20desiredTemperature%2018.0&XHR=1&fw_id=391 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.12.16 22:02:52 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 22:02:53 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 22:02:53 5: CUL/RAW: /Z
2015.12.16 22:02:53 5: CUL/RAW: Z/0BC70040
2015.12.16 22:02:53 5: CUL/RAW: Z0BC70040/123
2015.12.16 22:02:53 5: CUL/RAW: Z0BC70040123/45611CF5
2015.12.16 22:02:53 5: CUL/RAW: Z0BC7004012345611CF5/40024E5
2015.12.16 22:02:53 5: CUL/RAW: Z0BC7004012345611CF540024E5^M/

2015.12.16 22:02:53 4: CUL_Parse: Remote.nanoCUL868.DB Z0BC7004012345611CF540024E5 -87.5
2015.12.16 22:02:53 5: Remote.nanoCUL868.DB dispatch Z0BC7004012345611CF540024
2015.12.16 22:02:53 5: CUL_MAX_Parse: len 11, msgcnt C7, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 11cf54, groupid 0, payload 24
2015.12.16 22:02:53 4: Ignoring MAX_123456
2015.12.16 22:02:53 5: CUL/RAW: /Z0E
2015.12.16 22:02:53 5: CUL/RAW: Z0E/C7020211
2015.12.16 22:02:53 5: CUL/RAW: /Z0EC7020211C
2015.12.16 22:02:53 5: CUL/RAW: Z0EC7020211/CF54123
2015.12.16 22:02:53 5: CUL/RAW: Z0EC7020211CF54123/45600011
2015.12.16 22:02:53 5: CUL/RAW: Z0EC7020211C/F5412345600
2015.12.16 22:02:53 5: CUL/RAW: Z0EC7020211CF5412345600011/80024EA
2015.12.16 22:02:53 5: CUL/RAW: Z0EC7020211CF5412345600/011800241B

2015.12.16 22:02:53 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EC7020211CF5412345600011800241B -60.5
2015.12.16 22:02:53 5: Remote.nanoCUL868.WZ dispatch Z0EC7020211CF541234560001180024
2015.12.16 22:02:53 5: CUL_MAX_Parse: len 14, msgcnt C7, msgflag 02, msgTypeRaw Ack, src 11cf54, dst 123456, groupid 0, payload 01180024
2015.12.16 22:02:53 5: CUL_MAX_Parse: rssi: -60.5
2015.12.16 22:02:53 5: CUL.MAX.WZ dispatch MAX,1,Ack,11cf54,01180024
2015.12.16 22:02:53 5: MAX_Parse MAX,1,Ack,11cf54,01180024
2015.12.16 22:02:53 5: MAX_Parse MAX,1,ThermostatState,11cf54,180024
2015.12.16 22:02:53 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 0 %, desiredTemperature 18, until , curTemp
2015.12.16 22:02:53 5: Triggering MAX_11cf54 (6 changes)
2015.12.16 22:02:53 5: Notify loop for MAX_11cf54 mode: auto
2015.12.16 22:02:53 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 22:02:53 5: Got matching ack
2015.12.16 22:02:53 5: CUL/RAW: Z0EC7020211CF541234560001180024EA^M/

2015.12.16 22:02:53 4: CUL_Parse: Remote.nanoCUL868.DB Z0EC7020211CF541234560001180024EA -85
2015.12.16 22:02:53 5: Remote.nanoCUL868.DB dispatch Z0EC7020211CF541234560001180024
2015.12.16 22:02:53 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 22:03:44 5: CUL/RAW: /Z0
2015.12.16 22:03:44 5: CUL/RAW: Z0/F00046011CF5
2015.12.16 22:03:44 5: CUL/RAW: /Z0F0004601
2015.12.16 22:03:44 5: CUL/RAW: Z0F00046011CF5/40000000
2015.12.16 22:03:44 5: CUL/RAW: Z0F00046011CF540000000/0180024
2015.12.16 22:03:44 5: CUL/RAW: Z0F0004601/1CF5400000000180024
2015.12.16 22:03:44 5: CUL/RAW: Z0F00046011CF5400000000180024/00E3EB

2015.12.16 22:03:44 4: CUL_Parse: Remote.nanoCUL868.DB Z0F00046011CF540000000018002400E3EB -84.5
2015.12.16 22:03:44 5: Remote.nanoCUL868.DB dispatch Z0F00046011CF540000000018002400E3
2015.12.16 22:03:44 5: CUL_MAX_Parse: len 15, msgcnt 00, msgflag 04, msgTypeRaw ThermostatState, src 11cf54, dst 000000, groupid 0, payload 18002400E3
2015.12.16 22:03:44 5: CUL_MAX_Parse: rssi: -84.5
2015.12.16 22:03:44 5: CUL.MAX.WZ dispatch MAX,0,ThermostatState,11cf54,18002400E3
2015.12.16 22:03:44 5: MAX_Parse MAX,0,ThermostatState,11cf54,18002400E3
2015.12.16 22:03:44 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 0 %, desiredTemperature 18, until , curTemp 22.7
2015.12.16 22:03:44 5: Triggering MAX_11cf54 (7 changes)
2015.12.16 22:03:44 5: Notify loop for MAX_11cf54 mode: auto
2015.12.16 22:03:44 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 22:03:44 5: CUL/RAW: Z0F00046011CF5400000000180024/00E31A

2015.12.16 22:03:44 4: CUL_Parse: Remote.nanoCUL868.WZ Z0F00046011CF540000000018002400E31A -61
2015.12.16 22:03:44 5: Remote.nanoCUL868.WZ dispatch Z0F00046011CF540000000018002400E3

Still everything as expected. I can see me speaking to the thermostat on the second CUL and receive the Ack.

c) with both CUL defined  in a sendpool and both CUL_MAX defined:

2015.12.16 21:52:05 5: Cmd: >set MAX_11cf54 desiredTemperature 19.0<
2015.12.16 21:52:05 5: MAX_Set: staying in auto mode
2015.12.16 21:52:05 5: CUL_MAX_Send: enqueuing 0bc6004012345611cf540026
2015.12.16 21:52:05 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:05 5: SW: X
2015.12.16 21:52:05 5: CUL/RAW (ReadAnswer): 21 3139

2015.12.16 21:52:05 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 3139
2015.12.16 21:52:05 5: Remote.nanoCUL868.WZ sending Zs0bc6004012345611cf540026
2015.12.16 21:52:05 5: SW: Zs0bc6004012345611cf540026
2015.12.16 21:52:05 5: Triggering MAX_11cf54 (1 changes)
2015.12.16 21:52:05 5: Notify loop for MAX_11cf54 desiredTemperature 19.0
2015.12.16 21:52:05 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 21:52:05 4: name: /fhem?cmd=set%20MAX_11cf54%20desiredTemperature%2019.0&XHR=1&fw_id=395 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.12.16 21:52:06 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:06 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:06 5: CUL/RAW: /Z0
2015.12.16 21:52:06 5: CUL/RAW: Z0/BC60
2015.12.16 21:52:06 5: CUL/RAW: Z0BC60/04012345
2015.12.16 21:52:06 5: CUL/RAW: Z0BC6004012345/611C
2015.12.16 21:52:06 5: CUL/RAW: Z0BC6004012345611C/F540
2015.12.16 21:52:06 5: CUL/RAW: Z0BC6004012345611CF540/026E
2015.12.16 21:52:06 5: CUL/RAW: Z0BC6004012345611CF540026E/2

2015.12.16 21:52:06 4: CUL_Parse: Remote.nanoCUL868.DB Z0BC6004012345611CF540026E2 -89
2015.12.16 21:52:06 5: Remote.nanoCUL868.DB dispatch Z0BC6004012345611CF540026
2015.12.16 21:52:06 5: CUL_MAX_Parse: len 11, msgcnt C6, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 11cf54, groupid 0, payload 26
2015.12.16 21:52:06 4: Ignoring MAX_123456
2015.12.16 21:52:06 5: CUL/RAW: /Z
2015.12.16 21:52:06 5: CUL/RAW: Z/0EC6
2015.12.16 21:52:06 5: CUL/RAW: Z0EC6/0202
2015.12.16 21:52:06 5: CUL/RAW: Z0EC60202/11CF5412
2015.12.16 21:52:06 5: CUL/RAW: /Z0EC6020211CF5
2015.12.16 21:52:06 5: CUL/RAW: Z0EC6020211CF5412/3456
2015.12.16 21:52:06 5: CUL/RAW: Z0EC6020211CF5/4123
2015.12.16 21:52:06 5: CUL/RAW: Z0EC6020211CF54123456/0001181
2015.12.16 21:52:06 5: CUL/RAW: Z0EC6020211CF54123/4560
2015.12.16 21:52:06 5: CUL/RAW: Z0EC6020211CF541234560001181/D26EB

2015.12.16 21:52:06 4: CUL_Parse: Remote.nanoCUL868.DB Z0EC6020211CF541234560001181D26EB -84.5
2015.12.16 21:52:07 5: Remote.nanoCUL868.DB dispatch Z0EC6020211CF541234560001181D26
2015.12.16 21:52:07 5: CUL_MAX_Parse: len 14, msgcnt C6, msgflag 02, msgTypeRaw Ack, src 11cf54, dst 123456, groupid 0, payload 01181D26
2015.12.16 21:52:07 5: CUL_MAX_Parse: rssi: -84.5
2015.12.16 21:52:07 5: CUL.MAX.DB dispatch MAX,0,Ack,11cf54,01181D26
2015.12.16 21:52:07 5: MAX_Parse MAX,0,Ack,11cf54,01181D26
2015.12.16 21:52:07 5: MAX_Parse MAX,0,ThermostatState,11cf54,181D26
2015.12.16 21:52:07 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 29 %, desiredTemperature 19, until , curTemp
2015.12.16 21:52:07 5: Triggering MAX_11cf54 (6 changes)
2015.12.16 21:52:07 5: Notify loop for MAX_11cf54 mode: auto
2015.12.16 21:52:07 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 21:52:07 5: CUL/RAW: Z0EC6020211CF541234560/001181D2616

2015.12.16 21:52:07 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EC6020211CF541234560001181D2616 -63
2015.12.16 21:52:07 5: Remote.nanoCUL868.WZ dispatch Z0EC6020211CF541234560001181D26
2015.12.16 21:52:07 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:07 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:08 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:08 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:09 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:09 5: CUL_MAX_SendQueueHandler: Retry 11cf54 for 0bc6004012345611cf540026 count: 3
2015.12.16 21:52:12 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:12 5: SW: X
2015.12.16 21:52:12 5: CUL/RAW (ReadAnswer): 21 3036

2015.12.16 21:52:12 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 3036
2015.12.16 21:52:12 5: Remote.nanoCUL868.WZ sending Zs0bc6004012345611cf540026
2015.12.16 21:52:12 5: SW: Zs0bc6004012345611cf540026
2015.12.16 21:52:12 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:13 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:13 5: CUL/RAW: /Z0
2015.12.16 21:52:13 5: CUL/RAW: Z0/BC60
2015.12.16 21:52:13 5: CUL/RAW: Z0BC60/0401234
2015.12.16 21:52:13 5: CUL/RAW: Z0BC600401234/5611
2015.12.16 21:52:13 5: CUL/RAW: Z0BC6004012345611/CF54
2015.12.16 21:52:13 5: CUL/RAW: Z0BC6004012345611CF54/0026
2015.12.16 21:52:13 5: CUL/RAW: Z0BC6004012345611CF540026/E4

2015.12.16 21:52:13 4: CUL_Parse: Remote.nanoCUL868.DB Z0BC6004012345611CF540026E4 -88
2015.12.16 21:52:13 5: Remote.nanoCUL868.DB dispatch Z0BC6004012345611CF540026
2015.12.16 21:52:13 5: CUL_MAX_Parse: len 11, msgcnt C6, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 11cf54, groupid 0, payload 26
2015.12.16 21:52:13 4: Ignoring MAX_123456
2015.12.16 21:52:13 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:14 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:14 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:15 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:15 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:15 5: CUL_MAX_SendQueueHandler: Retry 11cf54 for 0bc6004012345611cf540026 count: 2
2015.12.16 21:52:18 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:18 5: SW: X
2015.12.16 21:52:18 5: CUL/RAW (ReadAnswer): 21 2933

2015.12.16 21:52:18 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 2933
2015.12.16 21:52:18 5: Remote.nanoCUL868.WZ sending Zs0bc6004012345611cf540026
2015.12.16 21:52:18 5: SW: Zs0bc6004012345611cf540026
2015.12.16 21:52:19 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:19 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:19 5: CUL/RAW: /Z
2015.12.16 21:52:19 5: CUL/RAW: Z/0BC6
2015.12.16 21:52:19 5: CUL/RAW: Z0BC6/0040123
2015.12.16 21:52:19 5: CUL/RAW: Z0BC60040123/4561
2015.12.16 21:52:19 5: CUL/RAW: Z0BC600401234561/1CF5
2015.12.16 21:52:19 5: CUL/RAW: Z0BC6004012345611CF5/4002
2015.12.16 21:52:19 5: CUL/RAW: Z0BC6004012345611CF54002/6E5

2015.12.16 21:52:19 4: CUL_Parse: Remote.nanoCUL868.DB Z0BC6004012345611CF540026E5 -87.5
2015.12.16 21:52:19 5: Remote.nanoCUL868.DB dispatch Z0BC6004012345611CF540026
2015.12.16 21:52:19 5: CUL_MAX_Parse: len 11, msgcnt C6, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 11cf54, groupid 0, payload 26
2015.12.16 21:52:19 4: Ignoring MAX_123456
2015.12.16 21:52:20 5: CUL/RAW: /Z
2015.12.16 21:52:20 5: CUL/RAW: Z/0EC6
2015.12.16 21:52:20 5: CUL/RAW: Z0EC6/020
2015.12.16 21:52:20 5: CUL/RAW: /Z0EC602021
2015.12.16 21:52:20 5: CUL/RAW: Z0EC6020/211CF541
2015.12.16 21:52:20 5: CUL/RAW: Z0EC6020211CF541/2345
2015.12.16 21:52:20 5: CUL/RAW: Z0EC602021/1CF541234560
2015.12.16 21:52:20 5: CUL/RAW: Z0EC6020211CF5412345/60001181
2015.12.16 21:52:20 5: CUL/RAW: Z0EC6020211CF541234560001181/D26
2015.12.16 21:52:20 5: CUL/RAW: Z0EC6020211CF541234560/001181D2
2015.12.16 21:52:20 5: CUL/RAW: Z0EC6020211CF541234560001181D26/EC

2015.12.16 21:52:20 4: CUL_Parse: Remote.nanoCUL868.DB Z0EC6020211CF541234560001181D26EC -84
2015.12.16 21:52:20 5: Remote.nanoCUL868.DB dispatch Z0EC6020211CF541234560001181D26
2015.12.16 21:52:20 5: CUL_MAX_Parse: len 14, msgcnt C6, msgflag 02, msgTypeRaw Ack, src 11cf54, dst 123456, groupid 0, payload 01181D26
2015.12.16 21:52:20 5: CUL_MAX_Parse: rssi: -84
2015.12.16 21:52:20 5: CUL.MAX.DB dispatch MAX,0,Ack,11cf54,01181D26
2015.12.16 21:52:20 5: MAX_Parse MAX,0,Ack,11cf54,01181D26
2015.12.16 21:52:20 5: MAX_Parse MAX,0,ThermostatState,11cf54,181D26
2015.12.16 21:52:20 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 29 %, desiredTemperature 19, until , curTemp
2015.12.16 21:52:20 5: Triggering MAX_11cf54 (6 changes)
2015.12.16 21:52:20 5: Notify loop for MAX_11cf54 mode: auto
2015.12.16 21:52:20 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 21:52:20 5: CUL/RAW: Z0EC6020211CF541234560001181D2/617

2015.12.16 21:52:20 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EC6020211CF541234560001181D2617 -62.5
2015.12.16 21:52:20 5: Remote.nanoCUL868.WZ dispatch Z0EC6020211CF541234560001181D26
2015.12.16 21:52:20 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:20 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:21 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:21 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:22 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:22 5: CUL_MAX_SendQueueHandler: Retry 11cf54 for 0bc6004012345611cf540026 count: 1
2015.12.16 21:52:25 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:25 5: SW: X
2015.12.16 21:52:25 5: CUL/RAW (ReadAnswer): 21 2830

2015.12.16 21:52:25 5: needPreamble: 1, necessaryCredit: 110, credit10ms: 2830
2015.12.16 21:52:25 5: Remote.nanoCUL868.WZ sending Zs0bc6004012345611cf540026
2015.12.16 21:52:25 5: SW: Zs0bc6004012345611cf540026
2015.12.16 21:52:25 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:26 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:26 5: CUL/RAW: /Z0BC
2015.12.16 21:52:26 5: CUL/RAW: Z0BC/6004
2015.12.16 21:52:26 5: CUL/RAW: Z0BC6004/0123456
2015.12.16 21:52:26 5: CUL/RAW: Z0BC60040123456/11CF
2015.12.16 21:52:26 5: CUL/RAW: Z0BC6004012345611CF/5400
2015.12.16 21:52:26 5: CUL/RAW: Z0BC6004012345611CF5400/26DE
2015.12.16 21:52:26 5: CUL/RAW: Z0BC6004012345611CF540026DE/

2015.12.16 21:52:26 4: CUL_Parse: Remote.nanoCUL868.DB Z0BC6004012345611CF540026DE -91
2015.12.16 21:52:26 5: Remote.nanoCUL868.DB dispatch Z0BC6004012345611CF540026
2015.12.16 21:52:26 5: CUL_MAX_Parse: len 11, msgcnt C6, msgflag 00, msgTypeRaw SetTemperature, src 123456, dst 11cf54, groupid 0, payload 26
2015.12.16 21:52:26 4: Ignoring MAX_123456
2015.12.16 21:52:26 5: CUL/RAW: /Z0EC
2015.12.16 21:52:26 5: CUL/RAW: Z0EC/6020211C
2015.12.16 21:52:26 5: CUL/RAW: /Z0EC6020211C
2015.12.16 21:52:26 5: CUL/RAW: Z0EC6020211C/F5412345
2015.12.16 21:52:26 5: CUL/RAW: Z0EC6020211CF5412345/600
2015.12.16 21:52:26 5: CUL/RAW: Z0EC6020211C/F54123456000
2015.12.16 21:52:26 5: CUL/RAW: Z0EC6020211CF5412345600/01181D26EC

2015.12.16 21:52:26 4: CUL_Parse: Remote.nanoCUL868.DB Z0EC6020211CF541234560001181D26EC -84
2015.12.16 21:52:26 5: Remote.nanoCUL868.DB dispatch Z0EC6020211CF541234560001181D26
2015.12.16 21:52:26 5: CUL_MAX_Parse: len 14, msgcnt C6, msgflag 02, msgTypeRaw Ack, src 11cf54, dst 123456, groupid 0, payload 01181D26
2015.12.16 21:52:26 5: CUL_MAX_Parse: rssi: -84
2015.12.16 21:52:26 5: CUL.MAX.DB dispatch MAX,0,Ack,11cf54,01181D26
2015.12.16 21:52:26 5: MAX_Parse MAX,0,Ack,11cf54,01181D26
2015.12.16 21:52:26 5: MAX_Parse MAX,0,ThermostatState,11cf54,181D26
2015.12.16 21:52:26 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 29 %, desiredTemperature 19, until , curTemp
2015.12.16 21:52:26 5: Triggering MAX_11cf54 (6 changes)
2015.12.16 21:52:26 5: Notify loop for MAX_11cf54 mode: auto
2015.12.16 21:52:26 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 21:52:26 5: CUL/RAW: Z0EC6020211CF54123456000/1181D2618

2015.12.16 21:52:26 4: CUL_Parse: Remote.nanoCUL868.WZ Z0EC6020211CF541234560001181D2618 -62
2015.12.16 21:52:26 5: Remote.nanoCUL868.WZ dispatch Z0EC6020211CF541234560001181D26
2015.12.16 21:52:26 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:27 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:27 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:28 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:28 5: CUL_MAX_SendQueueHandler: 1 items in queue
2015.12.16 21:52:28 2: CUL_MAX_SendQueueHandler: Missing ack from 11cf54 for 0bc6004012345611cf540026
2015.12.16 21:52:28 5: Triggering CUL.MAX.WZ (1 changes)
2015.12.16 21:52:28 5: Notify loop for CUL.MAX.WZ packetsLost: 125
2015.12.16 21:52:28 5: statistics Stats.Temp: Notify.261 Notification of 'CUL.MAX.WZ' received. Device not monitored.
2015.12.16 21:53:14 5: CUL/RAW: /Z
2015.12.16 21:53:14 5: CUL/RAW: Z/0F000460
2015.12.16 21:53:14 5: CUL/RAW: Z0F000460/11CF540
2015.12.16 21:53:14 5: CUL/RAW: /Z0F00046011CF5400
2015.12.16 21:53:14 5: CUL/RAW: Z0F00046011CF540/00000001
2015.12.16 21:53:14 5: CUL/RAW: Z0F00046011CF54000000001/8002
2015.12.16 21:53:14 5: CUL/RAW: Z0F00046011CF5400/00000018002600E
2015.12.16 21:53:14 5: CUL/RAW: Z0F00046011CF540000000018002/600E3EC

2015.12.16 21:53:14 4: CUL_Parse: Remote.nanoCUL868.DB Z0F00046011CF540000000018002600E3EC -84
2015.12.16 21:53:14 5: Remote.nanoCUL868.DB dispatch Z0F00046011CF540000000018002600E3
2015.12.16 21:53:14 5: CUL_MAX_Parse: len 15, msgcnt 00, msgflag 04, msgTypeRaw ThermostatState, src 11cf54, dst 000000, groupid 0, payload 18002600E3
2015.12.16 21:53:14 5: CUL_MAX_Parse: rssi: -84
2015.12.16 21:53:14 5: CUL.MAX.DB dispatch MAX,0,ThermostatState,11cf54,18002600E3
2015.12.16 21:53:14 5: MAX_Parse MAX,0,ThermostatState,11cf54,18002600E3
2015.12.16 21:53:14 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 0 %, desiredTemperature 19, until , curTemp 22.7
2015.12.16 21:53:14 5: Triggering MAX_11cf54 (7 changes)
2015.12.16 21:53:14 5: Notify loop for MAX_11cf54 mode: auto
2015.12.16 21:53:14 5: statistics Stats.Temp: Notify.261 Notification of 'MAX_11cf54' received. Device not monitored.
2015.12.16 21:53:14 5: CUL/RAW: Z0F00046011CF540000000018002600E/316

2015.12.16 21:53:14 4: CUL_Parse: Remote.nanoCUL868.WZ Z0F00046011CF540000000018002600E316 -63
2015.12.16 21:53:14 5: Remote.nanoCUL868.WZ dispatch Z0F00046011CF540000000018002600E3

and it stops working smoothly. The message is sent via the right CUL, I can see that from the second CUL. I then get an Ack from both CUL (2015.12.16 21:52:20), but only one seems to be parsed correctly. Nevertheless it should accept the one Ack. And finally the CUL_MAX_SendQueueHandler switches to resend (almost at the same time, before it finishes parsing the second Ack).


I hope this helps, let me know if I can do more tests.

Best,
Daniel

Sheridan

Hi,

any success with this setup by now? I am also trying to get a CUL and a CUBe (both with a-culfw and via CUL_MAX) to run. Some devices are on the floor with the CUBe, other on the floor with the CUL. The devices on the CUBe floor have the CUBe set up as IODev (attribute) and the one on the CUL floor the CUL. Both CUBe and CUL can sometimes see devices on the other floor, but many packets get lost.

Since the CUBe is slower in relaying a response from the MAX devices to FHEM, after a while LASTInputDev and with it IODev changes to the CUL even for devices that have the CUBe set up via attr as IODev.

From that moment on, the CUL (and no longer the CUBe) is used to send packets to those devices which then starts failing and failing.

So my guess is, that if the CUL_MAX module would NOT change the IODev based on the LASTInputDev (at least not, if the attr IODev is set for the device), everything could work as expected.
FHEM auf RasPi 4 mit CUL (MAX), CUL (IT), JeeLink (LaCrosse), JeeLink (EC3000), DuoFern, Razberry (ZWave) sowie Fritz!Box, Enigma2, Squeezebox, Google Assistant (inkl. Nest Hub 2)
FHEM auf RasPi 3 mit CUL (MAX), TUL (KNX), CUBe (MAX), EnOceanPi (EnOcean)

Jam2

Finally I think I found a solution for having multiple CULs and not having (wrong) missing ack.
This is the only thread I've found about this topic - so I am responding here.

I have one CUL1 (and its cul_max cm_ug) directly on the FHEM server located in ground floor and CUL0(cul_max=cm) via ser2net running on a raspberry pi located on first floor. 
Sendpool for CUL1 and CUL0 is defined.

1. CUL0 sends (e.g.) fakewt values to the thermostat
2. CUL1 receive the ack
3. CUL0 ignores the ack, as the same message was already processed in FHEM

The time difference  between 2. and 3. is sometime less than 0.01 seconds.
The problem is in fhem.pl sub CheckDuplicate. Tinkering with dupTimeout did not help.
Function was:

  foreach my $oidx (keys %duplicate) {
    if($duplicate{$oidx}{TIM} < $lim) {
      delete($duplicate{$oidx});

    } elsif($duplicate{$oidx}{MSG} eq $msg &&
            $duplicate{$oidx}{ION} eq "") {
      return (1, $oidx);

    } elsif($duplicate{$oidx}{MSG} eq $msg &&
            $duplicate{$oidx}{ION} ne $ioname) {
      return (1, $oidx);
    }
  }


I changed it to:
  my $localdup = AttrVal($ioname,"dupTimeout", undef);
  my $cul = 0;
  if(defined $localdup)
  {
    $cul = 1;
  }
  foreach my $oidx (keys %duplicate) {
    if($duplicate{$oidx}{TIM} < $lim) {
      delete($duplicate{$oidx});

    } elsif($duplicate{$oidx}{MSG} eq $msg &&
            $duplicate{$oidx}{ION} eq "") {
      return (1, $oidx);

    } elsif($duplicate{$oidx}{MSG} eq $msg &&
            $duplicate{$oidx}{ION} ne $ioname &&
            $cul != 1) {
      return (1, $oidx);
    }
  }


Basically, I added userattr dupTimeout to CUL0, CUL1, cm and cm_ug and if this is existing on the devices it will for sure process the messages even if they are same.


My perl skills are somewhat not existing => Is there any downside on this solution (except I was to lazy to rename the userattr :D) and that updates will be problematic?

FHEM / Intel NUC / 8xMAX Fensterkontakte + 16xMAX Thermostate + fakewt + CUL / 20x Technoline TX29 / Hue Bridge / duefern / fbdect / mysensors / homekit
RasPi ser2net CUL
FHEM / RasPi PI / buderus logamatic / temperatursensoren

Wzut

if you want to use more than one CUL in your system please have a look at https://forum.fhem.de/index.php/topic,106258.0.html
everything is done by 14_CUL_MAX and 10_MAX so you don't need to change anything in fhem.pl
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher