Closed genestealer closed 7 months ago
Note, this is why I thought the discovery messages were not being sent regularly. It was actually the service exiting after trying to connect. See https://github.com/Achronite/mqtt-energenie-ener314rt/issues/60
That must be the default; if you want to change the behaviour you can modify your mqtt_options
in your config.json
file.
I tried setting reconnectPeriod to 5 mins (120000) but cannot find anything to set infinite reconnections
I note, you also have to set the connectTimeout to greater than reconnectPeriod. Else it fails.
Ref: https://github.com/mqttjs/MQTT.js/issues/419
E.G.
{
"topic_stub": "energenie/",
"mqtt_broker": "mqtt://192.168.10.21",
"mqtt_options": {
"username":"energenie",
"password":"xxxxxx",
"clean": true,
"reconnectPeriod": "120000",
"connectTimeout": "130000"
},
"monitoring": true,
"discovery_prefix": "homeassistant/",
"ook_xmits": 50,
"fsk_xmits": 20,
"log_level": "info
}
I may be missing something but I'm struggling to see where in your .js application the exiting is occurring.
As from a simplistic point of view. I would look to try and remove the exit criteria, so as the .js application attempts to indefinitely reconnect.
Found issue was with systemd service, PR raised: https://github.com/Achronite/mqtt-energenie-ener314rt/pull/63
The issue with the reconnect period and connect timeout should have been fixed now on mqttjs 5.3.5. Any feedback would be welcome
https://github.com/mqttjs/MQTT.js/releases/tag/v5.3.5 @genestealer Are you OK to test if I bump the dependency?
I'm also working on a PR to add an error event on connack timeout: https://github.com/mqttjs/MQTT.js/pull/1781
https://github.com/mqttjs/MQTT.js/releases/tag/v5.3.5 @genestealer Are you OK to test if I bump the dependency?
Happy to test, sorry been away from this for a few weeks and feel like I have forgotten things. Sorry to sound stupid, do I just need to edit "package.json" 'dependencies' and set MQTT to 5.3.5 and run npm install again?
Happy to test, sorry been away from this for a few weeks and feel like I have forgotten things. Sorry to sound stupid, do I just need to edit "package.json" 'dependencies' and set MQTT to 5.3.5 and run npm install again?
Yes
I'm also working on a PR to add an error event on connack timeout: mqttjs/MQTT.js#1781 @Achronite Tested, MQTT 5.3.5 is working great.
I'm also working on a PR to add an error event on connack timeout: mqttjs/MQTT.js#1781 @robertsLando Thank you, I have removed the
connectTimeout
&reconnectPeriod
from mymqtt_options.json
@genestealer Still not working?
@genestealer Still not working?
Tested, MQTT 5.3.5 is working great. Yes it's working.
Thanks for your feedback 🙏🏼
@genestealer Do we still need your changes to the service?
@Achronite No, MQTT 5.3.5 fixed the issue as far as I can tell.
@robertsLando Does MQTT.js really require node.js v18.2+ ?
raspbian 9 doesn't support v18 (GLIBC_2.28 required)
@robertsLando Does MQTT.js really require node.js v18.2+ ?
Only tests require node 18+ but it works also with older nodejs versions
I note, if the MQTT server is unavailable, such as it's rebooting or temporarily offline, then the mqtt-energenie-ener314rt.service will exit after trying to connect 7 times and must be restarted.
Can we: extended this to 100, make it infinite, or logarithmically increase the time between retries after the first 7 or so tries?