Projects/MQTT: Difference between revisions
No edit summary |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
|name=MQTT | |name=MQTT | ||
|start=2016/09/16 | |start=2016/09/16 | ||
|contact=User:Polyfloyd | |contact=User:Polyfloyd | ||
|info=Lijm voor space-events | |info=Lijm voor space-events | ||
|status=Production | |status=Production | ||
|Picture=MQTT-Example.png | |||
}} | }} | ||
MQTT is een netwerkprotocol om korte statusberichten heen en weer te schuiven. | MQTT is een netwerkprotocol om korte statusberichten heen en weer te schuiven. | ||
Line 18: | Line 19: | ||
* bitlair/state {open,closed} | * bitlair/state {open,closed} | ||
* bitlair/state/djo {open,closed} | * bitlair/state/djo {open,closed} | ||
* bitlair/music/<spelernaam>/state {playing,paused,stopped} | * bitlair/music/<spelernaam>/state {playing,paused,stopped} | ||
* bitlair/music/<spelernaam>/volume <volume percentage> | * bitlair/music/<spelernaam>/volume <volume percentage> | ||
* bitlair/wifi/<netwerknaam>¹/online <aantal verbonden clients> | * bitlair/wifi/<netwerknaam>¹/online <aantal verbonden clients> | ||
* bitlair/ | * bitlair/climate/# <data van diverse sensoren> | ||
* bitlair/ | * bitlair/photos <bestandsnaam van foto's gemaakt met de WIP-cam> | ||
* bitlair/ | * bitlair/pos/product <naam van artikel verkocht via Revbank> | ||
* bitlair/ | * bitlair/lasercutter/# <stats gerapporteerd door de lasercutter> | ||
¹: "all" is een speciale netwerknaam die de gegevens van de andere netwerken combineert. | ¹: "all" is een speciale netwerknaam die de gegevens van de andere netwerken combineert. | ||
=== | === Intern: mqtt.bitlair.nl === | ||
* bitlair/alarm {armed,disarmed} <alarmcode> | * bitlair/alarm {armed,disarmed} <alarmcode> | ||
* bitlair/lock/<slotnaam> {lock,unlock} <naam> (TODO) | * bitlair/lock/<slotnaam> {lock,unlock} <naam> (TODO) | ||
Line 41: | Line 38: | ||
== Meekijken == | == Meekijken == | ||
* Installeer https://github.com/Juerd/Net-MQTT-Simple | * Installeer https://github.com/Juerd/Net-MQTT-Simple | ||
** <code># cpan Net::MQTT::Simple</code> | |||
* <code>$ mqtt-simple -h mqtt.bitlair.nl --color -s 'bitlair/#'</code> | * <code>$ mqtt-simple -h mqtt.bitlair.nl --color -s 'bitlair/#'</code> | ||
== Grafiekjes == | |||
De monitoring server op [https://monitoring.bitlair.nl] heeft een catch-all die data van sensoren verzamelt. | |||
Laat een sensor data publiceren op <code>bitlair/climate/{locatie}/{eenheid}</code> met iets numerieks als waarde en het komt vanzelf in Prometheus. | |||
== Scripts == | == Scripts == |
Latest revision as of 17:11, 29 September 2023
Project MQTT | |
---|---|
Name | MQTT |
Start | 2016/09/16 |
End | |
Contact | User:Polyfloyd |
Website | |
Information | Lijm voor space-events |
Status | Production |
MQTT is een netwerkprotocol om korte statusberichten heen en weer te schuiven.
Topics
Vanwege privacyredenen is niet alle informatie op het hele internet beschikbaar. Bitlair's MQTT infra bestaat daarom uit twee servers; een server toegankelijk vanaf het internet en een andere server die alleen binnen het spacenetwerk bereikbaar is waarop naast de normale events ook events worden gepubliceerd die we liever apart houden.
Openbaar: bitlair.nl
- bitlair/state {open,closed}
- bitlair/state/djo {open,closed}
- bitlair/music/<spelernaam>/state {playing,paused,stopped}
- bitlair/music/<spelernaam>/volume <volume percentage>
- bitlair/wifi/<netwerknaam>¹/online <aantal verbonden clients>
- bitlair/climate/#
- bitlair/photos <bestandsnaam van foto's gemaakt met de WIP-cam>
- bitlair/pos/product <naam van artikel verkocht via Revbank>
- bitlair/lasercutter/# <stats gerapporteerd door de lasercutter>
¹: "all" is een speciale netwerknaam die de gegevens van de andere netwerken combineert.
Intern: mqtt.bitlair.nl
- bitlair/alarm {armed,disarmed} <alarmcode>
- bitlair/lock/<slotnaam> {lock,unlock} <naam> (TODO)
- bitlair/music/<spelernaam>/track <artist> - <title>
- bitlair/wifi/<netwerknaam> {join,part} <mac> -|<signaalsterkte>
- bitlair/doorbell
Meekijken
- Installeer https://github.com/Juerd/Net-MQTT-Simple
# cpan Net::MQTT::Simple
$ mqtt-simple -h mqtt.bitlair.nl --color -s 'bitlair/#'
Grafiekjes
De monitoring server op [1] heeft een catch-all die data van sensoren verzamelt.
Laat een sensor data publiceren op bitlair/climate/{locatie}/{eenheid}
met iets numerieks als waarde en het komt vanzelf in Prometheus.
Scripts
Voor scripts in gebruik en voorbeelden, zie: https://github.com/bitlair/mqtt-scripts
Het is ook mogelijk om via een EventStream de status bij te houden:
var s = new EventSource('https://bitlair.nl/mqtt?bitlair/%23=bitlair'); s.addEventListener('bitlair', function (e) { var json = JSON.parse(e.data); var topic = json[0]; var value = json[1]; var retain = json[2]; console.log(topic, value, retain ? 'r' : '_'); });
Zie ook: https://github.com/Juerd/mqtt2web