Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Small Things for Monitoring
Search
Jan-Piet Mens
November 17, 2016
Technology
350
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
Netbox DNS and a bit of Ansible for the GUUG in July 2026
jpmens
0
20
Let's talk about Ansible facts
jpmens
0
260
Introducing OwnTracks
jpmens
0
190
Introducing OwnTracks
jpmens
0
320
Zabbix Low-Level Discovery (LLD) from a C module
jpmens
0
360
MQTT for system administrators (and for the IoT)
jpmens
1
730
Ansible AWX
jpmens
2
1.6k
FLOSS DNS servers
jpmens
0
520
Home automation with openHAB: an Introduction
jpmens
0
730
Other Decks in Technology
See All in Technology
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.5k
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
690
しろおびから始める!ログ活用の第一歩
shumei_ito
0
900
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
260
go-sqletch
moznion
0
130
メルペイ 会計システム概要と歴史
mewuto
0
210
WasmをRustにする
sansantech
PRO
0
170
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
170
Kiro Crewをはじめよう
kizawa2020
1
140
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
0
110
おそらく日本で唯一のDevRelインターン生として
husengs7
0
170
Running Kotlin + Quarkus with Lambda
nealle
1
420
Featured
See All Featured
A Soul's Torment
seathinner
8
3.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
4 Signs Your Business is Dying
shpigford
187
23k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
620
BBQ
matthewcrist
90
10k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
630
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
Paper Plane
katiecoart
PRO
4
54k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Believing is Seeing
oripsolob
1
240
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