On 21 Dec 2016, at 15:47, Ben Coman <btc@openinworld.com> wrote:
You might like to collaborate with Tim and Craig. http://forum.world.st/Graphing-weather-data-td4927701.html cheers -ben
Hmm, that code seems to be quite incomplete (from what I can see publicly): not all packet types and their IO is fully implemented, there are no unit tests, there is no client, and none of the more complex quality of service levels 0, 1 & 2 logic/flow, and there are no functional unit tests against public sandbox/test servers.
On Wed, Dec 21, 2016 at 10:17 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 21 Dec 2016, at 15:11, phil@highoctane.be wrote:
FWIW get yourself an account at http://enco.io
OK, I'll put it on my list of things to look at.
The devportal has mqtt endpoints so that we can integrate with that and possibly have some market place solutions offered and running with Pharo.
I have a small EnCoClient class in Pharo that works. Now making the API support more extensive.
Docs: http://docs.enco.io/docs/device-sensor-apis
Phil
On Wed, Dec 21, 2016 at 2:59 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 21 Dec 2016, at 12:50, phil@highoctane.be wrote:
Sven,
I am currently working with IoT and MQTT is necessary. At this point I use mosquitto as the broker and your Pharo client is nice to have and I will test it and give you feedback.
That is good to here, Phil.
Yes, such real world testing is much needed. This is actually quite fun stuff to experiment with. Let me know how it goes.
Sven
I've got a working microPython codebase so can compare what is in there (this for the LoPy device):
Thx for the module!
Phil
On Wed, Dec 21, 2016 at 12:15 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote: Hi,
MQTT is a light-weight publish/subscribe messaging protocol, originally created around 1998. It is now an official open industry ISO standard. It is perfect for large-scale Internet of Things applications and high performance mobile messaging.
The publish/subscribe messaging pattern requires a message broker. The broker is responsible for distributing messages to interested clients based on the topic of a message. Parties communicating with each other over MQTT would all be clients in different roles, like producers and consumers, using the broker as middleware.
Many client libraries for different programming languages and multiple brokers/servers are available. Facebook Messenger and Amazon AWS IOT are two users, among many others.
A good client library for Pharo was not yet available. I started a new MQTT project and I am looking for collaborators to help me finish it. The official specification is quite readable and there is a lot of information available (see the References/Links section at the end).
Right now, a first version of the following features is available:
- reading & writing of all 14 binary packet types
- an experimental client with support for connection open/close, ping, subscribe/unsubscribe, QoS levels 0 (at most once), 1 (at least once) and 2 (exactly once) for application (publish) messages in both directions, message/package IDs and keep alive (heartbeat)
- unit tests, for packet reading/writing and for clients against 3 publicly available sandbox/test brokers
Basically, the code works but needs polishing and maturing. Also, it might be useful to experiment with alternative client API design. Not all features are yet implemented. It would also be nice to implement an actual server/broker, not to replace production quality servers, but as a proof of concept and tools during development.
Code
http://smalltalkhub.com/#!/~SvenVanCaekenberghe/MQTT/
Right now, documentation is limited, but there are class comments and the most important public API methods are commented too. There is no Metacello configuration yet, just load the 3 packages.
References/Links
- http://mqtt.org - https://en.wikipedia.org/wiki/MQTT - http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html - https://github.com/mqtt/mqtt.github.io/wiki/software - http://mosquitto.org - https://github.com/emqtt/emqttd - http://kamilfb.github.io/mqtt-spy/ - https://github.com/eclipse/paho.mqtt-spy/wiki - https://eclipse.org/paho/ - https://eclipse.org/paho/clients/c/embedded/ - http://www.rabbitmq.com/mqtt.html - https://vernemq.com - https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-6...
Sandbox/test Servers/Brokers
iot.eclipse.org:1883 test.mosquitto.org:1883 broker.mqtt-dashboard.com:1883
Sven
-- Sven Van Caekenberghe http://stfx.eu Smalltalk is the Red Pill