Fabio Manganiello
00fabf3853
Reverted MQTT client reconnection logic until I find a more reliable way to identify the errors that caused the disconnections
2021-03-22 02:11:46 +01:00
Fabio Manganiello
cad184fc1f
MQTT_ERR_NOMEM should not result in a reconnection
2021-03-22 02:07:53 +01:00
Fabio Manganiello
928bb3667a
Reconnection logic for MQTT disconnections caused by temporary errors
2021-03-22 01:52:27 +01:00
Fabio Manganiello
1d3d741212
Fixed Sphinx build warnings
2021-03-14 01:09:01 +01:00
Fabio Manganiello
2800bac3fb
Make sure that all hanging threads, backends and services are stopped and their resources cleaned up when the application stops.
2021-02-23 23:09:26 +01:00
Fabio Manganiello
201bb5986f
Don't create an MQTT client connection if there are no topics to subscribe.
...
If we open multiple connections from multiple MQTT-based backends to the
same host, with some of them having no topics subscribed, Paho-MQTT can
mess up which client is supposed to receive which message and we may end
up with lost messages on the platypush_bus_mqt/<host> topic.
2021-02-15 22:02:58 +01:00
Fabio Manganiello
f9598977db
Refactored backend.mqtt to reuse connections whenever possible, as well as programmatically subscribe/unsubscribe topics at runtime
2021-02-10 22:31:33 +01:00
Fabio Manganiello
f1ab923bfe
Option to reuse the MQTT configuration of the plugin if not provided on the backend
2020-08-27 17:39:22 +02:00
Fabio Manganiello
d7c3ad64f5
Use default MQTT settings for MQTT listeners if not provided
2020-08-27 17:16:33 +02:00
Fabio Manganiello
ca0c4e3089
Don't overwrite the client variable within the same scope
2020-08-27 16:59:35 +02:00
Fabio Manganiello
beceb39b0c
Added client_id in MQTT integrations
2020-08-27 16:41:51 +02:00
Fabio Manganiello
9f1128e2c0
typo fix
2020-08-27 16:30:18 +02:00
Fabio Manganiello
e77e5bb3d8
Only expand paths if set
2020-08-27 16:29:21 +02:00
Fabio Manganiello
0d182820e8
expanduser for TLS files in MQTT listeners
2020-08-27 16:25:52 +02:00
Fabio Manganiello
cd8732dc8f
Added tls_insecure flag to MQTT
2020-08-27 15:56:43 +02:00
Fabio Manganiello
b8917de52f
TLS version in MQTT configuration parsed from string
2020-08-27 12:44:00 +02:00
Fabio Manganiello
8255f9af28
Added zigbee2mqtt integration (see #76 )
2020-01-22 18:34:28 +01:00
Fabio Manganiello
2c8993e67d
LINT fixes
2019-12-09 19:22:38 +01:00
Fabio Manganiello
022262eb78
Handle MQTT listeners by host with lists of topics, so we only need one listener thread per host
2019-03-07 23:03:12 +01:00
Fabio Manganiello
84099b2ab7
Added support for multiple listeners on multiple servers and topics for general-purpose messaging on the MQTT backend
2019-03-07 22:52:02 +01:00
Fabio Manganiello
e1920700ec
Handle backend stop/disconnection on MQTT
2019-01-18 04:10:27 +01:00
Fabio Manganiello
2d8b2ba55a
Removed pp- prefix from the name of the spawned processes and threads
2019-01-13 20:41:15 +01:00
Fabio Manganiello
fbf3600e91
Setting thread and process names properly through prctl
2019-01-10 23:45:13 +01:00
Fabio Manganiello
56c7258c74
Setting names for threads
2019-01-10 23:08:29 +01:00
Fabio Manganiello
5b9c54748e
Do not propagate a null response message back to the bus to prevent backends from breaking
2019-01-02 09:29:27 +01:00
Fabio Manganiello
2d8078b8bb
Don't propagate the message from MQTT nor wait for a response if the message is null or its handler threw an exception
2018-11-10 01:16:32 +01:00
Fabio Manganiello
26ec213098
Make sure that the shitty MQTT backend doesn't break for no reason
2018-11-06 11:40:01 +01:00
Fabio Manganiello
56b87f3436
Support for default broker server configuration in MQTT plugin
2018-11-02 15:32:12 +00:00
Fabio Manganiello
788a2652c8
Support for TLS/SSL and user authentication on MQTT
2018-11-02 15:15:48 +00:00
Fabio Manganiello
8635ed8268
Added support for MQTT backend to process responses on a topic named platypush_bus_mq/<device>/responses/<msg_id>
2018-10-26 13:33:23 +00:00
Fabio Manganiello
284e0638f8
Always define msg so the function doesn't fail on exception
...
Reverted the previous retry logic for backend - it didn't really work
This reverts commit 4e0e4863a0
.
This reverts commit 964c7b5cf0
.
This reverts commit 6ce348365f
.
2018-10-25 20:46:34 +02:00
Fabio Manganiello
6ce348365f
Refactored backends to be more robust by wrapping the core logic into a try-except logic with sleep and retry
2018-10-25 19:46:13 +02:00
Fabio Manganiello
65ec2458d8
MQTT backend should call on_message instead of posting directly to the bus
2018-09-24 23:21:02 +02:00
Fabio Manganiello
28862d743d
Adding backends documentation
2018-06-26 00:16:39 +02:00
Fabio Manganiello
464ff1ff57
A more robust way to handle JSON serialization/deserialization on MQTT backend
2018-06-12 10:33:30 +02:00
Fabio Manganiello
b329580ff0
json decode msg
2018-06-12 09:28:15 +02:00
Fabio Manganiello
8c208c0028
Use the Redis backend to dispatch messages to the core bus if available
2018-06-12 09:20:22 +02:00
Fabio Manganiello
4da74b1096
Refactored logging submodule
2018-06-06 20:09:23 +02:00
Fabio Manganiello
3fe70dd184
Implemented MQTT backend and plugin, see issue #56
2018-05-27 12:21:41 +02:00