mqtt-connector

command module
v0.0.0-...-a89941d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2023 License: MIT Imports: 10 Imported by: 0

README

mqtt-connector

This is an MQTT connector for OpenFaaS.

build

About

Once configured and deployed it will deliver messages from selected topics to OpenFaaS functions.

There are various other connectors available for OpenFaaS which form "triggers" for event-driven architectures.

Prior work:

This is inspired by prior work by Alex Ellis: Collect, plot and analyse sensor readings from your IoT devices with OpenFaaS

Component parts:

Deploy in-cluster with Kubernetes

See helm chart for deployment instructions. Then continue at "Test the connector".

export TAG=0.3.1

make build push

Deploy out of cluster

go build

export GATEWAY_PASSWORD=""
export BROKER="tcp://test.mosquitto.org:1883"
export TOPIC="openfaas-sensor-data"

./mqtt-connector --gateway http://127.0.0.1:8080 \
  --broker $BROKER \
  --gw-username admin \
  --gw-password $GATEWAY_PASSWORD \
  --topic $TOPIC

Deploy a function:

faas-cli deploy --name echo --image ghcr.io/openfaas/alpine:latest \
  --fprocess=cat \
  --annotation topic="openfaas-sensor-data"

Test the connector

Annotate a function with the annotation topic: $TOPIC <- where $TOPIC is the MQTT topic you care about.

2019/12/03 16:43:26 Topic: topic        Broker: tcp://test.mosquitto.org:1883
2019/12/03 16:43:29 Invoking (http://192.168.0.35:8080) on topic: "topic", value: "{\"sensor\": \"s1\", \"humidity\": \"52.09\", \"temp\": \"23.200\", \"ip\": \"192.168.0.40\", \"vdd33\": \"65535\", \"rssi\": -45}"
2019/12/03 16:43:29 Invoke function: print-out
Send: "{\"sensor\": \"s1\", \"humidity\": \"52.09\", \"temp\": \"23.200\", \"ip\": \"192.168.0.40\", \"vdd33\": \"65535\", \"rssi\": -45}"
2019/12/03 16:43:29 connector-sdk got result: [200] topic => print-out (24) bytes
[200] topic => print-out
{"temperature":"23.200"}
2019/12/03 16:43:29 tester got result: [200] topic => print-out (24) bytes

This data was generated on the topic topic by my NodeMCU device which publishes sensor data.

A node12 function named print-out returned the temperature as reported.

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL