MQTTClient Qos 1
-
I've been playing around with the GatewayW5100MQTTClient from the MySensors 1.6 Beta, using DHCP.
There are a couple of things that I think would improve it: (I've prototyped most of them)
Item 1:
Ability to optionally use URL rather than IP address (have implemented for TCP)Item 2:
If gateway IP address is DHCP assigned, I think that the gateway should be calling Ethernet.maintain() as part of the bool gatewayTransportAvailable() call.Item 3:
Ability to send messages from gateway with QOS value 1 - this is really important as it allows the MQTT server to store messages for mqtt clients when they are disconnected. When the clients come back on line they will be delivered all stored messages for their subscription (assuming they subscribed with QOS 1)As the standard PubSub client doesn't implement this, I have prototyped this by merging in code from https://github.com/knolleary/pubsubclient/pull/100 - although this implementation required a couple of minor fixes and I'm still testing.
Item 4:
Ability to send messages with 'retained' flag set. So that new mqtt clients will get 'last sensor values' and also 'sensor and node presentation' messages when they connect.Item 5:
Reduce the size of the PubSubClient code to just the necessary stuff to reduce size.Does anyone have any thoughts on this?
-
I'm in favor of this.
I would add Item 6: Have (configurable) symbolic names for the values.
I' using the gateway with FHEM where readings are automatically created and symbolic names are much easier to handle than the raw numbers. I've pacthed that in the version I'm using, but a general approach would be great.