MQTT
Inhoud
MQTT
mqtt is a messagebus based on the IBM MQ bus. It allows you to pass messages from one system to another without worrying about delivery or other send/receive errors and queues.
a simple mqtt server is mosquitto. (mosquitto_sub is the command line client)
With the client you can read messages on the bus and post messages to the bus. With the server you can setup your own mqtt bus. To read e.g. the temperature in the makerspace, you only need a client.
There are also MQTT clients that run on a smartphone/tablet
MQTT bij MakerSpace Leiden
Luisteren naar alles:
mosquitto_sub -h space.makerspaceleiden.nl -t '#' -v
(Ben je ingelogd op de deur db machine dan is mosquitto_sub -v -t "#" genoeg)
Onder andere de status van de space (open/dicht), de deuren (realtime en wie het laatst langskwam), en de huidige temperatuur. Echter zonder enige garantie voor correctheid of aanwezigheid van genoemde gegevens.
Posten:
mosquitto_pub -h space.makerspaceleiden.nl -t user/Marten -m “ wat een leuk plan.."
2) Je zult elke 15 minuten elk van de nodes zich zien melden met:
log [spacedeur-asis-2017] connected, Wired Ethernet: 30:AE:A4:0C:2D:CF, IPv4: 192.168.4.137, full-duplex, 100 Mbps, Build: Mar 8 2018 14:54:53 log [voordeur-asis-2017] connected, Wired Ethernet: 30:AE:A4:09:05:87, IPv4: 192.168.4.136, full-duplex, 100 Mbps, Build: Mar 20 2018 20:30:04 log [tussendeur-asis-2017] connected, Wired Ethernet: 30:AE:A4:13:E9:3F, IPv4: 192.168.4.141, full-duplex, 100 Mbps, Build: Mar 8 2018 14:52:35 etc..
Als het niet werkt
Check of MQTT up is.
Powercycle dan de nodes via de PoE of via het kabeltje. De poort nummers en mac-addressen staan hierboven.
Of stuur er via de bus het commando 'reset' heen met
mosquitto_pub -t deur/tussendeur/open -m reboot
En check dat dat je in het log ziet:
log [tussendeur-asis-2017] connected, Wired Ethernet: 30:AE:A4:13:E9:3F, IPv4: 192.168.4.141, full-duplex, 100 Mbps, Build: Mar 8 2018 14:52:35
Andere truucks
Je ziet alle logs van alle nodes met
mosquitto_sub -t log/#
voeg eventueel de hostname toe. Deze worden op zowel de interne als externe bus gepost. De interne bus post het door naar de externe. Dus als de interne down is werkt de externe ook niet.
Alle nodes laten zich elke 10-15 minuten zien. Ook als er verder geen activiteit is. De nodes zijn slecht in het bijhouden van de tijd - dus lees niet te veel in de `uptime' - die is gauw 10-30% verlopen.
Er zijn een paar speciale topics die tekst voorlezen of lampen aansturen, maar de werking hiervan is niet gegarandeerd.
connecten naar MQTT
MQTT - GUIs
Deze kunnen gevonden worden op https://www.hivemq.com/blog/seven-best-mqtt-client-tools of in je app-store.
Een voorbeeld (mqtt-spy, de jar van https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads) is:
Links is (alleen) de juiste hostname: space.makerspaceleiden.nl ingevuld; rechts is een subscription op `log'.
met python
onder debian/ubuntu
apt-get install python-pip python-dev pip install paho-mqtt
examples
http://svn.martenvijn.nl/svn/deuropener/ http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.python.git/tree/examples