Projects/MQTT: Difference between revisions

From Hackerspace Amersfoort
Jump to navigation Jump to search
No edit summary
No edit summary
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
Line 18: Line 18:
* bitlair/state {open,closed}
* bitlair/state {open,closed}
* bitlair/state/djo {open,closed}
* bitlair/state/djo {open,closed}
* bitlair/cam/<cameranaam> <aantal kijkers>
* 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/temperature/<room>/current <huidige temperatuur in celsius>
* bitlair/climate/# <data van diverse sensoren>
* bitlair/climate/temperature-outside <buitentemperatuur>
* bitlair/photos <bestandsnaam van foto's gemaakt met de WIP-cam>
* bitlair/temperature/<room>/target <ingestelde temperatuur in celsius>
* bitlair/pos/product <naam van artikel verkocht via Revbank>
* bitlair/humidity/<room> <luchtvochtigheid in procenten>
* bitlair/lasercutter/# <stats gerapporteerd door de lasercutter>
* bitlair/flash
* bitlair/test/# ...


¹: "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.


=== Privaat: mqtt.bitlair.nl ===
=== Intern: mqtt.bitlair.nl ===
* bitlair/cam/<cameranaam>/viewers <namen van kijkers>...
* 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 37:
== 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>



Revision as of 17:03, 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

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