Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Small Things for Monitoring
Jan-Piet Mens
November 17, 2016
Technology
2
250
Small Things for Monitoring
Jan-Piet Mens
November 17, 2016
Tweet
Share
More Decks by Jan-Piet Mens
See All by Jan-Piet Mens
Introducing OwnTracks
jpmens
0
52
Introducing OwnTracks
jpmens
0
64
Zabbix Low-Level Discovery (LLD) from a C module
jpmens
0
150
MQTT for system administrators (and for the IoT)
jpmens
1
450
Ansible AWX
jpmens
2
780
FLOSS DNS servers
jpmens
0
310
Home automation with openHAB: an Introduction
jpmens
0
580
The Story of OwnTracks
jpmens
2
160
MQTT for Sysadmins
jpmens
3
590
Other Decks in Technology
See All in Technology
プログラミング支援AI GitHub Copilot すごいの話
moyashi
0
260
【Λ(らむだ)】いつのまにリスキリング / RPALT20230117
lambda
0
370
EMになって最初の失敗談 - コミュニケーション編 -
fukuiretu
1
320
2022年に起きたフロントエンドの変化
sakito
27
16k
データベースの発表には RDBMS 以外もありますよ
maroon1st
0
210
日本ディープラーニング協会主催 NeurIPS 2022 技術報告会講演資料
tdailab
0
850
AI Services 概要 / AI Services overview
oracle4engineer
PRO
0
160
Astroで始める爆速個人サイト開発
takanorip
12
8.1k
propsのバケツリレー対策でGlobal_Stateを使うその前に
taro28
8
1.7k
Technologies for developing editors / Webエディタ開発を支える技術
shuta13
1
220
Amazon Forecast を使って売上予測をしてみた
tomuro
0
290
データエンジニアを助けてくれるFivetranとSnowflakeの仕様&機能のご紹介
sagara
0
410
Featured
See All Featured
Robots, Beer and Maslow
schacon
154
7.3k
Designing Experiences People Love
moore
130
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
338
18k
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
Why You Should Never Use an ORM
jnunemaker
PRO
49
7.9k
GraphQLの誤解/rethinking-graphql
sonatard
38
7.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
182
15k
Atom: Resistance is Futile
akmur
256
24k
Thoughts on Productivity
jonyablonski
49
2.7k
Documentation Writing (for coders)
carmenintech
51
2.9k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
175
9.1k
Building Applications with DynamoDB
mza
85
4.9k
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