openHAB 2.2 binding
-
The ERROR 409 was because I had defined the binding in a things file, and then tried to use paper ui to add sensors, apparently that is not allowed..
I use
socat PTY,link=/dev/ttyS81,mode=666,group=dialout,raw PTY,link=/dev/ttyUSB21,mode=666,group=dialout,rawTo start socat up, nodered is listening on ttyS81, and openhab is on ttyUSB21.
I have now deleted the things file, and configured the gateway through paperui, I have disabled startup check so the gateway seems to be online.
If I do a cat /dev/ttyUSB21 I get the data from the gateway, so node-red is passing on the data without problems.
But openhab still spews out errors in the log every other second or so:
21:13:46.531 [DEBUG] [col.serial.MySensorsSerialConnection] - Request disconnection flag setted to: true 21:13:48.097 [INFO ] [col.serial.MySensorsSerialConnection] - Connection request disconnection... 21:13:48.097 [DEBUG] [col.serial.MySensorsSerialConnection] - Request disconnection flag setted to: false 21:13:48.098 [DEBUG] [col.serial.MySensorsSerialConnection] - Shutting down serial connection! 21:13:48.098 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Stopping Writer thread 21:13:48.099 [WARN ] [rsAbstractConnection$MySensorsWriter] - Interrupted MySensorsWriter 21:13:48.099 [DEBUG] [rsAbstractConnection$MySensorsReader] - Stopping Reader thread 21:13:48.099 [WARN ] [rsAbstractConnection$MySensorsReader] - Interrupted MySensorsReader 21:13:48.143 [DEBUG] [ensors.handler.MySensorsThingHandler] - MySensors Bridge Status updated to OFFLINE for device: mysensors:humidity:9f16ca21 21:13:48.145 [DEBUG] [ensors.handler.MySensorsThingHandler] - MySensors Bridge Status updated to OFFLINE for device: mysensors:humidity:8124dc86 21:13:48.146 [DEBUG] [ensors.factory.MySensorsCacheFactory] - Writing on cache given_ids, content: [9,10] 21:13:48.146 [DEBUG] [ensors.handler.MySensorsThingHandler] - MySensors Bridge Status updated to OFFLINE for device: mysensors:temperature:6b7baead 21:13:48.146 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:humidity:9f16ca21' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR) 21:13:48.151 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:temperature:6b7baead' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR) 21:13:48.152 [DEBUG] [col.serial.MySensorsSerialConnection] - Connecting to /dev/ttyUSB21 [baudRate:115200] 21:13:48.157 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:humidity:8124dc86' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR) 21:13:48.157 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:temperature:6b7baead' changed from OFFLINE (BRIDGE_OFFLINE) to OFFLINE 21:13:48.160 [DEBUG] [col.serial.MySensorsSerialConnection] - Successfully connected to serial port. 21:13:48.163 [DEBUG] [col.serial.MySensorsSerialConnection] - Waiting 3 seconds to allow correct reset trigger on serial connection opening 21:13:48.166 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:humidity:8124dc86' changed from OFFLINE (BRIDGE_OFFLINE) to OFFLINE 21:13:48.167 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:bridge-ser:53441a70' changed from ONLINE to OFFLINE 21:13:48.173 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:temperature:6b7baead' changed from OFFLINE (COMMUNICATION_ERROR) to OFFLINE (BRIDGE_OFFLINE) 21:13:48.174 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:humidity:9f16ca21' changed from OFFLINE (BRIDGE_OFFLINE) to OFFLINE 21:13:48.178 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:humidity:8124dc86' changed from OFFLINE (COMMUNICATION_ERROR) to OFFLINE (BRIDGE_OFFLINE) 21:13:48.182 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:humidity:9f16ca21' changed from OFFLINE (COMMUNICATION_ERROR) to OFFLINE (BRIDGE_OFFLINE) 21:13:51.166 [WARN ] [col.serial.MySensorsSerialConnection] - Skipping I_VERSION connection test, not recommended... 21:13:51.169 [DEBUG] [ensors.handler.MySensorsThingHandler] - MySensors Bridge Status updated to ONLINE for device: mysensors:humidity:9f16ca21 21:13:51.174 [DEBUG] [ensors.factory.MySensorsCacheFactory] - Writing on cache given_ids, content: [9,10] 21:13:51.174 [DEBUG] [ensors.handler.MySensorsThingHandler] - MySensors Bridge Status updated to ONLINE for device: mysensors:humidity:8124dc86 21:13:51.175 [DEBUG] [ensors.handler.MySensorsThingHandler] - MySensors Bridge Status updated to ONLINE for device: mysensors:temperature:6b7baead 21:13:51.186 [DEBUG] [ensors.handler.MySensorsThingHandler] - Event listener for node 10-0 not registered yet, registering... 21:13:51.190 [DEBUG] [ensors.handler.MySensorsThingHandler] - Event listener for node 9-1 not registered yet, registering... 21:13:51.185 [DEBUG] [ensors.handler.MySensorsThingHandler] - Event listener for node 10-1 not registered yet, registering... 21:13:51.175 [INFO ] [col.serial.MySensorsSerialConnection] - Successfully connected to MySensors Bridge. 21:13:51.195 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:bridge-ser:53441a70' changed from OFFLINE to ONLINE 21:13:51.199 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:humidity:9f16ca21' changed from OFFLINE to ONLINE 21:13:51.202 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:temperature:6b7baead' changed from OFFLINE to ONLINE 21:13:51.203 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:humidity:8124dc86' changed from OFFLINE to ONLINE 21:13:51.275 [WARN ] [rsAbstractConnection$MySensorsReader] - Exception on reading from connection java.io.IOException: Underlying input stream returned zero bytes at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288)[:1.8.0] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)[:1.8.0] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)[:1.8.0] at java.io.InputStreamReader.read(InputStreamReader.java:184)[:1.8.0] at java.io.BufferedReader.fill(BufferedReader.java:161)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:324)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:389)[:1.8.0] at org.openhab.binding.mysensors.internal.protocol.MySensorsAbstractConnection$MySensorsReader.run(MySensorsAbstractConnection.java:335)[186:org.openhab.binding.mysensors:2.2.0.201707241115] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0] at java.lang.Thread.run(Thread.java:744)[:1.8.0] 21:13:52.229 [WARN ] [rsAbstractConnection$MySensorsReader] - Exception on reading from connection java.io.IOException: Underlying input stream returned zero bytes at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288)[:1.8.0] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)[:1.8.0] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)[:1.8.0] at java.io.InputStreamReader.read(InputStreamReader.java:184)[:1.8.0] at java.io.BufferedReader.fill(BufferedReader.java:161)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:324)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:389)[:1.8.0] at org.openhab.binding.mysensors.internal.protocol.MySensorsAbstractConnection$MySensorsReader.run(MySensorsAbstractConnection.java:335)[186:org.openhab.binding.mysensors:2.2.0.201707241115] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0] at java.lang.Thread.run(Thread.java:744)[:1.8.0] 21:13:52.552 [WARN ] [rsAbstractConnection$MySensorsReader] - Exception on reading from connection java.io.IOException: Underlying input stream returned zero bytes at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288)[:1.8.0] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)[:1.8.0] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)[:1.8.0] at java.io.InputStreamReader.read(InputStreamReader.java:184)[:1.8.0] at java.io.BufferedReader.fill(BufferedReader.java:161)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:324)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:389)[:1.8.0] at org.openhab.binding.mysensors.internal.protocol.MySensorsAbstractConnection$MySensorsReader.run(MySensorsAbstractConnection.java:335)[186:org.openhab.binding.mysensors:2.2.0.201707241115] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0] at java.lang.Thread.run(Thread.java:744)[:1.8.0] 21:13:54.392 [WARN ] [rsAbstractConnection$MySensorsReader] - Exception on reading from connection java.io.IOException: Underlying input stream returned zero bytes at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288)[:1.8.0] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)[:1.8.0] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)[:1.8.0] at java.io.InputStreamReader.read(InputStreamReader.java:184)[:1.8.0] at java.io.BufferedReader.fill(BufferedReader.java:161)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:324)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:389)[:1.8.0] at org.openhab.binding.mysensors.internal.protocol.MySensorsAbstractConnection$MySensorsReader.run(MySensorsAbstractConnection.java:335)[186:org.openhab.binding.mysensors:2.2.0.201707241115] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0] at java.lang.Thread.run(Thread.java:744)[:1.8.0] 21:13:56.816 [WARN ] [rsAbstractConnection$MySensorsReader] - Exception on reading from connection java.io.IOException: Underlying input stream returned zero bytes at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288)[:1.8.0] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)[:1.8.0] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)[:1.8.0] at java.io.InputStreamReader.read(InputStreamReader.java:184)[:1.8.0] at java.io.BufferedReader.fill(BufferedReader.java:161)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:324)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:389)[:1.8.0] at org.openhab.binding.mysensors.internal.protocol.MySensorsAbstractConnection$MySensorsReader.run(MySensorsAbstractConnection.java:335)[186:org.openhab.binding.mysensors:2.2.0.201707241115] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0] at java.lang.Thread.run(Thread.java:744)[:1.8.0] 21:13:57.963 [WARN ] [rsAbstractConnection$MySensorsReader] - Exception on reading from connection java.io.IOException: Underlying input stream returned zero bytes at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288)[:1.8.0] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)[:1.8.0] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)[:1.8.0] at java.io.InputStreamReader.read(InputStreamReader.java:184)[:1.8.0] at java.io.BufferedReader.fill(BufferedReader.java:161)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:324)[:1.8.0] at java.io.BufferedReader.readLine(BufferedReader.java:389)[:1.8.0] at org.openhab.binding.mysensors.internal.protocol.MySensorsAbstractConnection$MySensorsReader.run(MySensorsAbstractConnection.java:335)[186:org.openhab.binding.mysensors:2.2.0.201707241115] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0] at java.lang.Thread.run(Thread.java:744)[:1.8.0] -
Found my issue after digging through both openhab and nodered..
I had forgotten to add /n to data sent out on the virtual serial port towards openhab. As soon as I added that, then everything was working..
Now, I just have to grasp the concept in openhab, which might take some time.
-
Hi,
thanks for the new Version! I've got a Problem with the Network Sanity Check, it doesn't run.I got a ESP8266 Based Ethernet Gateway which is configured with DHCP. Everytime the DHCP Lease got renewed the Connection between the Gateway and openHAB is lost for a short Time. The Binding doesnt' recognize this. The Gateway and all Sensors marked as Online but not a single Message comes from the Gateway. I could also reproduce this if i reboot the Gateway.
I tried different Settings for the Sanity Check but nothing worked.
I switched to Debug-logging for the Binding. After the Connection is lost, not a single Log Entry is written.If i go into the Settings from the Gateway thing and change something, the binding start to communicate with the Gateway again, but all Sensors marked as offline in openHAB. There are incoming Messages from Sensors but the Binding write to log:
20:35:10.030 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 5;2;1;0;1;67.9 20:35:10.036 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 5 found in gateway 20:35:10.041 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 2 not present in node 5if i restart whole openHAB all is functional again until the next time this occurs.
Thanks for help,
Greets PhilEdit: I also get the same Log entries as above if i change a Setting from the sanity check, without rebooting the Gateway.
-
Ok small update to my post above: I can add an RGBW node via the paperUI and then control it via items defined in the items file.
But why does the same thing not work for things defined via the things file? Is something wrong with:Bridge mysensors:bridge-ser:gwSerial [ serialPort="/dev/ttyUSB0", sendDelay=100 ] { /** Lights */ rgbwLight LichtKuecheUnten [nodeID=4, childId=1, requestAck=true] //... }The thing created by the paperui is called
mysensors:rgbwLight:gwSerial:rgbwlight_4_1:status / rgbw / ....so my settings are correct.
Also is there a way to control the white part of the light? I have a colorpicker for that item linked to the rgbw channel but this seem to only change the color and brightness, ignoring the white part of the RGBW.
PS I also sometimes get an acknowledgment message when no actual messages from/to the gateway and node are in the logs and the node doesn't react at all. Any idea how that can happen? It seems to mainly happen when switch very fast but I am not 100% sure about that.
19:47:18.881 [INFO ] [rsAbstractConnection$MySensorsWriter] - ACK received for message: 4;1;1;1;2;1Should I report these error in a github issue?
-
Hi,
thanks for the new Version! I've got a Problem with the Network Sanity Check, it doesn't run.I got a ESP8266 Based Ethernet Gateway which is configured with DHCP. Everytime the DHCP Lease got renewed the Connection between the Gateway and openHAB is lost for a short Time. The Binding doesnt' recognize this. The Gateway and all Sensors marked as Online but not a single Message comes from the Gateway. I could also reproduce this if i reboot the Gateway.
I tried different Settings for the Sanity Check but nothing worked.
I switched to Debug-logging for the Binding. After the Connection is lost, not a single Log Entry is written.If i go into the Settings from the Gateway thing and change something, the binding start to communicate with the Gateway again, but all Sensors marked as offline in openHAB. There are incoming Messages from Sensors but the Binding write to log:
20:35:10.030 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 5;2;1;0;1;67.9 20:35:10.036 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 5 found in gateway 20:35:10.041 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 2 not present in node 5if i restart whole openHAB all is functional again until the next time this occurs.
Thanks for help,
Greets PhilEdit: I also get the same Log entries as above if i change a Setting from the sanity check, without rebooting the Gateway.
@philro and @syren : to get this straight: The sanity check is enabled but it won't send messages to the gateway after the connection is lost? The monitoring of the connection in the binding is very top-level, so it may happen, that a connection is lost and there is no information about that. But the sanity check needs to fail in that case and should try a reconnect.
What are your exact parameters for the bridge/gateway? -
I just reported some of my issues in the github repo. There might still be some errors there.
I'll try to help solving them as best as I can as @TimO 's work with the integration into openhab 2 seems pretty awesome too me :+1:
I am trying to switch to openhab anyways and am not that bad at developing in java. Perhaps I can be of some help there.Here are the gitHub issues
Dimmer not working
Things definition not working -
I just reported some of my issues in the github repo. There might still be some errors there.
I'll try to help solving them as best as I can as @TimO 's work with the integration into openhab 2 seems pretty awesome too me :+1:
I am trying to switch to openhab anyways and am not that bad at developing in java. Perhaps I can be of some help there.Here are the gitHub issues
Dimmer not working
Things definition not working@LastSamurai Thank you for your kind words and I'm very glad if you could help here. The RGBW implementation is the most advanced and I've no RGBW sensor myself to test it.
I've commented your issue reports!
-
@LastSamurai Thank you for your kind words and I'm very glad if you could help here. The RGBW implementation is the most advanced and I've no RGBW sensor myself to test it.
I've commented your issue reports!
@TimO Thank you! You already solved one of my problems. I'll try to also look into the dimming problem although I first need to understand the openhab structure.
I just added another issue in github as sometimes my nodes don't seem to update.
Also I really want to be able to only activate the white part of the node when needed (as mixed white just looks bad, afterall thats why you use RGBW leds). I can change the level of the white leds via my openhab android app but I have found no way to set the leds to 00 00 00 FF. The RGB part always stays on. Should I add another gitHub issue for this or is there just some other kind of control I need to use?
-
@philro and @syren : to get this straight: The sanity check is enabled but it won't send messages to the gateway after the connection is lost? The monitoring of the connection in the binding is very top-level, so it may happen, that a connection is lost and there is no information about that. But the sanity check needs to fail in that case and should try a reconnect.
What are your exact parameters for the bridge/gateway?@TimO Sorry for the delay
the Problem is that the sanity-check didn't recognize if the Gateway is offline.
My Settings are quite standard. I took a screenshot of my Settings and from the openhab Things page. At the Moment where the screenshot was taken, the Gateway are powered off till 24 hours.
So, no Sensor or Gateway could be online

After i powered the Gateway on again, nothing happens in openHAB. I need to restart openHAB and all starts working again.
Greets Phil
-
I have the same problem as @philro describe. I run a new topic here https://forum.mysensors.org/topic/7346/openhab-don-t-want-to-reconnect-after-gateway-restart . When I disconnect and than connect again or restart gateway everything seems to be Online but I can't take no action with actuators and don't receive any information from nodes. Also in log of OpenHab and gateway debug I can't see any "sanity check" behavior.
-
There are some new issues, OpenHab disconnect form gateway by it self, and did not reconnect. It was in the middle of the night when only temperature sensors sending data sometimes when temperature change.. After I restart openhab2 service all starts to work normal..
-
Ok, I've found that sanity check starting when you configure your thing through .thing file not from PaperUI. The sanity checker runs but when I disconnect and connect gateway sanity check send message to gateway and return that gateway isn't connected and start counting retries to disconnecting. That repeats until I restart OpenHab..
-
Ok, I've found that sanity check starting when you configure your thing through .thing file not from PaperUI. The sanity checker runs but when I disconnect and connect gateway sanity check send message to gateway and return that gateway isn't connected and start counting retries to disconnecting. That repeats until I restart OpenHab..
@nofox It's definatly not working the way it should work. It also should not make any difference if the configuration comes from PaperUI or from a .thing file. It is not possible to differentiate between those configuration modes within the binding.
My gateways are using static IPs, so I need to find a way to reproduce this behaviour. :-)
-
@nofox It's definatly not working the way it should work. It also should not make any difference if the configuration comes from PaperUI or from a .thing file. It is not possible to differentiate between those configuration modes within the binding.
My gateways are using static IPs, so I need to find a way to reproduce this behaviour. :-)
-
@nofox It's definatly not working the way it should work. It also should not make any difference if the configuration comes from PaperUI or from a .thing file. It is not possible to differentiate between those configuration modes within the binding.
My gateways are using static IPs, so I need to find a way to reproduce this behaviour. :-)
-
I have added 2 more issues in github. Most importantly there seems to be an issue with ACK right now. So if you have enabled acknowledgment on one of your things and sometimes see no reactions from your leds (or whatever you are using) try disabling ACK. I helped in my case.
-
Hello,
Not sure if it is related to the above mentioned ACK issue... I have some distanced actuators, and was heavily relying on the repeated message send if no ACK. I habe the impression with this upgrade, it does not work as before. Can it be the case? -
Hello,
Not sure if it is related to the above mentioned ACK issue... I have some distanced actuators, and was heavily relying on the repeated message send if no ACK. I habe the impression with this upgrade, it does not work as before. Can it be the case?@krejcarek I haven't heard anything from @TimO recently but have you tried it without ACK enabled? In my case the rate of success increased visibly. There are still some cases where the message doesn't get send successfully though, so I am still waiting for the working ACK feature ;)