home-climate-control / esphome2influxdb

ESPHome to InfluxDB Gateway
GNU General Public License v3.0
7 stars 0 forks source link

Automatically reconnect if MQTT connection is lost #4

Open climategadgets opened 3 years ago

climategadgets commented 3 years ago

Expected result

MQTT connection stays on as long as the broker is up

Actual result

MQTT connection drops once in a while

climategadgets commented 3 years ago

Closing for now, will reopen if the lazy fix is too lazy

climategadgets commented 3 years ago

As of 50fb3df3b219ab6f9fe40eb26e80e1509ae41ced: reconnection is not persistent enough, fails for long timeouts. Need to be more aggressive; reopening.

11:59:10,746 ERROR MqttReader MQTT Rec: 779a6544-6f69-4786-9070-2b8f61a844eb [] Lost connection
 org.eclipse.paho.client.mqttv3.MqttException: Connection lost
        at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:190) [org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
Caused by: java.io.EOFException
        at java.io.DataInputStream.readByte(DataInputStream.java:267) ~[?:1.8.0_252]
        at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:92) ~[org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:137) ~[org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        ... 1 more
11:59:10,753 INFO MqttReader MQTT Rec: 779a6544-6f69-4786-9070-2b8f61a844eb [] Attempting to reconnect
11:59:16,066 FATAL MqttReader MQTT Rec: 779a6544-6f69-4786-9070-2b8f61a844eb [] Reconnect failed, giving up
 org.eclipse.paho.client.mqttv3.MqttException: Unable to connect to server
        at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:80) ~[org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:722) ~[org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_252]
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_252]
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_252]
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_252]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_252]
        at java.net.Socket.connect(Socket.java:607) ~[?:1.8.0_252]
        at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:74) ~[org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        ... 2 more