Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Small Things for Monitoring
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Jan-Piet Mens
November 17, 2016
Technology
330
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Small Things for Monitoring
Jan-Piet Mens
November 17, 2016
More Decks by Jan-Piet Mens
See All by Jan-Piet Mens
Let's talk about Ansible facts
jpmens
0
230
Introducing OwnTracks
jpmens
0
170
Introducing OwnTracks
jpmens
0
300
Zabbix Low-Level Discovery (LLD) from a C module
jpmens
0
330
MQTT for system administrators (and for the IoT)
jpmens
1
700
Ansible AWX
jpmens
2
1.5k
FLOSS DNS servers
jpmens
0
500
Home automation with openHAB: an Introduction
jpmens
0
710
The Story of OwnTracks
jpmens
2
240
Other Decks in Technology
See All in Technology
ブロックチェーン / Blockchain
ks91
PRO
0
120
EventBridge Connection
_kensh
5
680
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
130
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
hiroakis
1
1.5k
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
200
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
4
980
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.9k
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
110
Amazon Bedrock AgentCore ワークショップ JAWS UG TOHOKU / amazon-bedrock-agentcore-workshop-jawsug-tohoku-2026
gawa
9
570
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
1
220
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
2
170
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
We Have a Design System, Now What?
morganepeng
55
8.2k
New Earth Scene 8
popppiees
3
2.3k
Designing for humans not robots
tammielis
254
26k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
How STYLIGHT went responsive
nonsquared
100
6.2k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
Transcript
Small Things for Monitoring Jan-Piet Mens November 2016 @jpmens
@jpmens: consultant, part- time admin, small-scale fiddler, loves DNS, plain
text, and things that work. Dreamed up OwnTracks & wrote jo
Today’s special MQTT ESP8266 for monitoring stuff
MQTT is a standard, a transport, PUB/SUB messaging, designed for
unreliable networks MQTT
security TLS authentication ACLs TLS-PSK (payload encryption)
Quality of Service 0 At most once 1 Assured delivery
2 Once only
topic names UTF-8, hierarchical, wildcards temperature/room/living devices/# finance/+/eur/rate
PUB/SUB cauldron
MQTT brokers the server bit of MQTT
Mosquitto C, fast, lightweight, ACLs (plugin), TLS, TLS-PSK, bridge, Websockets,
logging via $SYS, FLOSS http://mosquitto.org
bridging
CLI utilities mosquitto_sub -v [-h localhost] [-p 1883] [--cafile file]
[--cert file --key file] [-u username [-P password]] -t 'topic/#' subscribe publish mosquitto_pub ... [-r] -t topic -m payload
languages Lua, Python, C, JavaScript, Perl, Ruby, Java, ...
Python API: PUB #!/usr/bin/env python import paho.mqtt.publish as mqtt mqtt.single('conf/hello',
'Hello MQTT') $ mosquitto_sub -h localhost -v -t 'conf/#' conf/hello Hello MQTT payload topic
Python API: SUB callbacks #!/usr/bin/env python import paho.mqtt.client as paho
def on_connect(mosq, userdata, rc): mqttc.subscribe("conf/+", 0) def on_message(mosq, userdata, msg): print "%s %s" % (msg.topic, str(msg.payload)) mqttc = paho.Client(userdata=None) mqttc.on_connect = on_connect mqttc.on_message = on_message mqttc.connect("localhost", 1883, 60) mqttc.loop_forever()
Python API: SUB $ mosquitto_pub -t 'conf/thirsty' -m 'Beertime?' $
mosquitto_pub -t 'conf/catering' -m 'Coffee is ready' $ ./sub.py conf/thirsty Beertime? conf/catering Coffee is ready
The hardware … EUR 22.83 Flash/RAM 16 / 64 USB
2 LAN/WAN 1 / 1 WiFi 802.11 b/g/n GL-Inet AR150
Small, but too much EUR 50 - 100
ESP8266 Low-cost micro controller full TCP/IP stack A bit like
an Arduino (same IDE, or Lua) but with on-board WiFi (!) and really inexpensive Different form factors
ESP8266 EUR 1.50 ESP-01 EUR 2.60 NodeMCU EUR 1.50 ESP-12
Electrodragon EUR 5.50 http://www.electrodragon.com
Sonoff EUR 4.47 https://www.itead.cc/sonoff-wifi-wireless-switch.html
Wemos D1 mini EUR 4.00 Flash/RAM 4MB / 64 KB
Voltage 3.3V Digital I/O 11 Analog 1
Wemos shields EUR 1.95 EUR 4.50 EUR 1.40 EUR 2.90
Homie-ESP8266 #include <Homie.h> HomieNode buttonNode("button", "button"); void loopHandler() { int
buttonValue = debouncer.read(); /* ... */ if (Homie.setNodeProperty(buttonNode, "open", buttonValue ? "true" : "false", true)) { } } void setup() { debouncer.attach(PIN_BUTTON); Homie.setFirmware("button-homie", "1.0.0"); Homie.registerNode(buttonNode); Homie.setLoopFunction(loopHandler); Homie.setup(); } void loop() { Homie.loop(); debouncer.update(); } https://github.com/marvinroger/homie-esp8266
Arduino IDE
Le bouton devices/cea191e0/$nodes button:button devices/cea191e0/$online true devices/cea191e0/$name Le bouton devices/cea191e0/$localip
192.168.8.151 devices/cea191e0/$fwname button-homie devices/cea191e0/$fwversion 1.0.0 devices/cea191e0/$signal 100 devices/cea191e0/button/open true
homie-ota https://github.com/jpmens/homie-ota Retro/Vintage-style
Monitoring Temperature, movement (PIR), humidity, inexpensive sensors, many examples, LWT,
mqttwarn for integration, Node-Red
alerting: mqttwarn https://github.com/jpmens/mqttwarn
practical solutions alerting, metering, logging, location awareness, tracking, automation, and
controlling, host monitoring
MQTT in the wild Graylog, beaver, Ansible, RabbitMQ, collectd, openHAB,
Github, Wireshark, Flukso, RemakeElectric, Jenkins, Diamond, OwnTracks
mqtt.org @mqttorg
Particle Photon EUR 19.00
Particle Electron EUR 70.00
Omega2