MQTT is a machine-to-machine (M2M)/“Internet of Things” connectivity protocol. see: http://mqtt.org
We are running a mqtt server on c-beam.cbrp3.c-base.org on port 1883 (or port 1882 for websockets). It's only reachable from the internal network.
An up-to-date listing of artefacts and their topics can be found from https://github.com/c-base/c-flo/tree/master/participants
The content of the current participant folder (updated by running a grunt createMarkup command in c-flo)
artifact | description | inports topic | outports topic |
---|---|---|---|
barstatus | c-base bar status switch | n/a | state: bar/state stateful: bar/stateful status: bar/status |
c-base/BigSwitch | IP-Lounge big switch | led: button/bigswitch/led colors: button/bigswitch/colors | state: button/bigswitch/on |
c-base/buttonpanel | Ignition button | led: c-boom/led vibra: c-boom/vibra | ignition: c-boom/ignition start: c-boom/start |
c_out | Generate sounds | n/a | playsound: c_out/play playrandomsound: c_out/loop saytext: c_out/announce saytext_en: c_out/announce_en |
c-base/c-beam-viewer | Show URL on a public screen. | open: #ROLE/open | opened: #ROLE/opened |
crew | station crew register | n/a | boarding: user/boarding leaving: user/leaving crew: c-base/crew members: c-base/crew/members passive: c-base/crew/passive updated: c-base/crew/last_update |
ingress-table/data | Ingress data fetching for the Ingress Table | fetch: ingress-data.FETCH poll: ingress-data.POLL | floor: ingress-data.FLOOR light: ingress-data.LIGHT streets: ingress-data.STREETS |
c-base/dmx | station light control | set_channels: dmx-mainhall/state | fixtures: dmx-mainhall/fixtures channels: dmx-mainhall/current_state automode: dmx-mainhall/automode |
echelon | station network traffic monitoring | n/a | traffic: system/echelon/traffic |
msgflo-browser/infodisplay | Show URL on a public screen. | open: #ROLE.OPEN urls: #ROLE.URLS | opened: #ROLE.OPENED |
ingress-portal | Portal status via Ingress Table | n/a | status: ingress/status/+ |
ingress-table/lights | Drive the lights on the table | streets: ingress-lights.STREETS floor: ingress-lights.FLOOR light: ingress-lights.LIGHT animate: ingress-lights.ANIMATE | shown: ingress-lights.SHOWN |
c-base/mqttwebview | Show URL on a public screen. | open: #ROLE/open | opened: #ROLE/opened |
c-base/music-player | c-base music player | n/a | current_song: megablast/current_song |
nerdctrl | c-base nerd control interface | n/a | openurl: nerdctrl/open |
panel | Color LED panel | palette: panel/#ROLE | n/a |
pedestrianlight | pedestrian traffic light | colors: ampel/#ROLE | n/a |
playsound | Play sounds | playsound: c_out/play playrandomsound: c_out/loop saytext: c_out/announce saytext_en: c_out/announce_en | n/a |
powermon | station power usage monitoring | n/a | out: system/powermon load: system/powermon/load counter: system/powermon/counter updated: system/powermon/last_update |
station-announcer/StationAnnouncer | Generate random station announcements at given propability | announce: station-announcer.ANNOUNCE probability: station-announcer.PROBABILITY in: station-announcer.IN | out: station-announcer.OUT skipped: station-announcer.SKIPPED |
statuslight | bar status light indicating openness | barstatus: bar/stateful | n/a |
time | c-base station time | n/a | time: info/time |
Vacuum | station vacuum cleaner | n/a | on: c-base/vacuum/on |
Currently there are the following topics:
topic | interval | description |
---|---|---|
ampel/mainhall | n/a | wie, ampel nerd, aber zusätzlich noch mit Gelb: {“red”: 1, “green”: 1, “yellow”: 1} |
ampel/nerd | n/a | Beispiel JSON-Daten für die Message: '{“red”: 1, “green”: 0}' |
c-base/crew | 15 minutes | all of the below crew data |
c-base/crew/members | 15 minutes | crew member count |
c-base/crew/last_update | 15 minutes | ISO timestamp of the last update of the power data |
c-base/crew/passive | 15 minutes | number of passive members |
c_out/loop | 10 minutes | starts a new sound loop on c_out |
c_out/play | n/a | playload plays various sound samples |
c_out/Julia | n/a | playload plays announcements on c_out via tts with voice Julia |
client/echelon | n/a | this is a retained topic, if it is available, the traffic stats script on echelon is running |
info/time | 1 minute | current date and time |
ingress/status/+ | n/a | these are retained topics and show status of the ingres portals around the c-base |
nerdctrl/open | n/a | opens the payload URL in a browser in the nerdarea |
system/echelon/traffic | 1 minute | average incoming and outgoing traffic on ipb and kdg lines from echelon in bytes/s since last message |
system/powermon | 15 seconds | all of the below power data |
system/powermon/counter | 15 seconds | estimated power meter counter |
system/powermon/last_update | 15 seconds | ISO timestamp of the last update of the power data |
system/powermon/load | 15 seconds | current (estimated) power load in watts |
system/powermon/load_low | 15 seconds | lowest power load in watts |
system/powermon/load_low_date | 15 seconds | date lowest power load in watts was seen last |
system/powermon/load_high | 15 seconds | highest power load in watts |
system/powermon/load_high_date | 15 seconds | date highest power load in watts was seen last |
system/powermon/raw | 15 seconds | raw data from the LS110 |
user/boarding | n/a | triggered when a member logs in, message contains the username in JSON format |
The topics from echelon are published with a small lua daemon, which can be easily extended. Check it out from: https://github.com/c-base/mqtt-sender