Das Internet der Dinge (IoT) vernetzt die Physische Welt mit der Digitalen Welt.
Nachfolgend sind Server und Tools beschrieben, welche im u.a. im Zusammenspiel mit dem IoTKit verwendet werden können.
Kommandozeilenprogramm zum Compilieren der IoTKit Beispiele
Mittels Apache Web Server der Erweiterung CGI-BIN und einem Bash Shellscript kann das REST Paradigma abgebildet werden.
Alles verpackt in einem Container steht im Docker Image marcel1691/apache-rest
zur Verfügung.
Apache-REST Beispiel starten und UI in Browser öffnen:
kubectl create -f duk/iot/apache-rest.yaml
startsvc apache-rest
Testen
http://localhost
durch Ausgabe von minikube
ersetzen.
FHEM ist ein einfache Hausautomationslösung welche in Perl geschrieben ist.
Für FHEM existiert ein Container einer vordefinierten Konfiguration um den IoTKit anzusprechen.
FHEM Starten - Port Weiterleitungs Variante
kubectl create -f duk/iot/fhem-port.yaml
startsvc fhem-port
FHEM Starten - Ingress Variante (das Add-On Ingress muss enabled sein)
kubectel create -f duk/iot/fhem.yaml
Aufruf FHEM UI mittels folgendem URL:
https://<IP LoadBalancer>:30443/fhem
open Home Automation Bus (openHAB) ist eine in Java entwickelte Softwarelösung, die Komponenten zur Gebäudeautomatisierung von den verschiedensten Anbietern hersteller- und protokollneutral in einer Plattform miteinander verbindet.
openHAB Starten (Standard Image)
kubectl create -f duk/iot/openhab.yaml
startsvc openhab
In der openHAB Oberfläche die Demo Oberfläche initialisieren und dann ins PaperUI wechseln.
IoTKit an USB und Ethernet Kabel anschliessen und RPCHTTPServerSmartHomeV2 Programm auf IoTKit laden. Reset Taste drücken und IP-Adresse, welche auf dem OLED-Display angezeigt wird notieren.
Zurück auf der Kommandline: Pod-Id ausgeben
kubectl get pods --selector='app=openhab'
IoTKit Add-On von github holen
wget https://github.com/mc-b/IoTKit/releases/download/V1.0/ch.iotkit.smarthome.binding.mbedRPC_1.0.0.201511131556.jar
Add-On in Container kopieren:
kubectl cp ch.iotkit.smarthome.binding.mbedRPC_1.0.0.201511131556.jar <pod-id>:/openhab/addons
In die obenHAB Oberfläche wechseln und kontrollieren ob unter Configuration
-> Bindings
die IoTKit Bindings erscheint (es dauert ein Weilchen).
Wenn Nein: Unter Configuration
-> System
-> Add-on Management
die Unterstützung für 1.x Bindings aktivieren.
Mittels Configuration
-> Things
zuerst IoTKit Gateway, mit IP-Adresse des IoTKit, erstellen. Anschliessend können die Einzelnen IoTKit Geräte wie LED, Sensoren, Aktoren etc. erstellt werden.
Mosquitto – Open-Source-MQTT-Broker und Teil des Eclipse-IoT-Projektes (iot.eclipse.org).
Mosquitto Starten
kubectl create -f duk/iot/mosquitto.yaml
Mosquitto Port (Original 1883) anzeigen
kubectl get services -o wide --selector=app=mosquitto
Mittels den Mosquitto Client Programmen (apt-get install mosquitto-clients
) oder dem IoTKit können Nachrichten über den Mosquitto Broker gesendet und empfangen werden.
Auf allen Topics horchen:
mosquitto_sub -p <Mosquitto-Port> -h 192.168.137.100 -t '#'
Daten an Mosquitto Broker senden:
mosquitto_pub -p <Mosquitto-Port> -h 192.168.137.100 -t mbed/k64f/iotkit/light -m "1.1" -q 0
Node-RED ist ein Programmierwerkzeug, um Hardwaregeräte, APIs und Online-Dienste auf neue Weise miteinander zu verbinden.
Es stellt einen Browser-basierten Editor zur Verfügung, der das Zusammenfassen von Datenflüssen mit Hilfe von zahlreichen sogenannten Nodes erleichtert.
Node-RED Standard Version mit HTTP und MQTT Unterstützung starten:
kubectl create -f duk/iot/nodered.yaml
startsvc nodered
Node-RED mit CoAP Unterstützung (nicht Live getestet!)
Dazu muss zuerst vom IoTKit Projekt das Dockerfile geholt werden, ein Docker Image erstellt und anschliessend dieses gestartet werden:
git clone https://github.com/mc-b/IoTKitV2.git
cd IoTKitV2/vagrant/nodered-coap
docker build -t nodered-coap .
kubectl create -f nodered-coap.yaml
startsvc nodered-coap