Standards für nicht mit dem Internet verbundene WiFi-Geräte?

10

Ich habe vor, viel Hausautomation zu machen. Dafür werde ich ein privates isoliertes WiFi-Netzwerk hosten, mit dem alle meine Geräte verbunden werden. Die Geräte sind einfache Leuchten, RGB-LED-Streifen (smd5050 und ws2812b), Thermostate, Lüfter, Fensteröffner, Fensterschattenregler und normale Steckdosen. Außerdem können IR-Sender eine Fernbedienung simulieren, um Fernseher usw. zu starten. Und ein 433-MHz-Sender, um eine Fernbedienung zu simulieren, mit der standardmäßige ferngesteuerte Steckdosen umgeschaltet werden können.

Jetzt frage ich mich, ob es Standards für die Art der Schnittstelle gibt, die diese Geräte für das WiFi-Netzwerk bereitstellen sollen.

Ich könnte natürlich jedem Gerät eine einfache http-Route geben und dann Anwendungen schreiben, die meine Benutzeroberfläche verstehen, aber es wäre schön, wenn ich einen Standard implementieren könnte, der es mir ermöglicht, bereits geschriebene Apps und Programme zu verwenden und den Standard zu verstehen .

Forivin
quelle

Antworten:

7

Bei IoT-Protokollen werden bei der Kommunikation am häufigsten HTTP, CoAP und MQTT verwendet.

HTTP und CoAP eignen sich für die Kommunikation zwischen Client und Server vom REST-Typ. MQTT unterstützt die publikations- und abonnementbasierte Mehrbenutzerkommunikation, bei der der Ursprung problemlos von Server zu Client, von Client zu Server und sogar von Client zu Client liegen kann.

Beantwortung der Frage:

Verwenden Sie REST über HTTP oder CoAP für die Eins-zu-Eins-Kommunikation oder MQTT für die Verwendung von Mehrpunktverkehr.

Mehr Details

Nach dem Kommentar unten gebe ich zu, dass meine Antwort ziemlich unvollständig war, also habe ich etwas mehr untersucht und gefunden:

Sogar die Kommunikation hat diese Art von Durcheinander von Standards, wenn alle berechnet werden:

http://www.slideshare.net/butler-iot/butler-project-overview-13603599

Quelle: EU Butler Project - Kommunikationsfragen

Auch postscapes.com hat folgende Liste basierend auf verschiedenen Aspekten:

1  Infrastructure (ex: 6LowPAN, IPv4/IPv6, RPL)
2  Identification (ex: EPC, uCode, IPv6, URIs)
3  Comms / Transport (ex: Wifi, Bluetooth, LPWAN)
4  Discovery (ex: Physical Web, mDNS, DNS-SD)
5  Data Protocols (ex: MQTT, CoAP, AMQP, Websocket, Node)
6  Device Management (ex: TR-069, OMA-DM)
7  Semantic (ex: JSON-LD, Web Thing Model)
8  Multi-layer Frameworks (ex: Alljoyn, IoTivity, Weave, Homekit)

Wie in der Liste der einzelnen Beispiele zu sehen ist, gibt es viele davon, und sicherlich gibt es auch mehr benutzerdefinierte und proprietäre Beispiele.

Sie sollten diesen Link öffnen und durchlesen, es ist umwerfend. Ich glaube, Sie können in Ihren Projekten auf viele davon stoßen, zumindest wenn die Sensoren stark verpackt sind, d. H. nicht nur Komponenten im reinsten Format, sondern auch Teile eines bereits vorhandenen Ökosystems. In diesen Fällen können Sie möglicherweise nicht verhandeln, wie Sie sie miteinander verbinden, sondern müssen nur zwischen Ökosystemen wählen.

Das richtige Problem scheint nun darin zu bestehen, den richtigen Produktsatz oder Satz von Sätzen (Gruppe von Produktgruppen) mit identischen oder nahezu übereinstimmenden Protokollstapeln über WLAN zu finden, wenn Sie das Ziel festlegen (unter Berücksichtigung von Infrarot ist eine Lösung außerhalb dieses Bereichs und dort) Es gibt viele andere drahtlose Netzwerklösungen, die nicht mit dem Internet verbunden sind.

Kriterien wären, herauszufinden, was Sie alles tun möchten und wie viele Stapel Sie auf diese Weise lernen möchten. Mit Lernen meine ich, dass Sie immer noch wenig mit den Geräten spielen und sich darüber im Klaren sein möchten, wie das bestimmte Protokoll unter der Haube funktioniert.

mico
quelle
1
"REST over http" ist etwas vage. Selbst in diesem Sinne könnte ich mir hundert verschiedene Möglichkeiten vorstellen, die Schnittstelle speziell für Geräte zu entwerfen, die mehr als "Ein" und "Aus" verstehen. Im Idealfall würde ich nur die IP-Adresse und den Gerätetyp angeben und der Rest wäre standardisiert. Gibt es so etwas?
Forivin
7

Meine Empfehlung ist MQTT. Vielseitig, leicht und modular kann es sogar auf einem ESP8266 (Hub und Client) ausgeführt werden. Das MQTT-Protokoll ist für viele Plattformen verfügbar, von eingebetteten mobilen Geräten bis hin zu großen Betriebssystemen wie MAC, Windows und Linux.

Das Protokoll verfügt über ein Publisher-Subscriber-Modell für die Kommunikation. Und eine QoS, damit sich ein Hub daran erinnern kann, ob ein Abonnent eine Nachricht von einem Herausgeber erhalten hat. So kann ein schlafendes Gerät auf dem neuesten Stand sein, wenn es aufwacht und nach Nachrichten sucht.

Ich betreibe meinen MQTT-Server auf einem kleinen Raspberry Pi Zero W, es ist wie eine Kreditkarte an der Wand, und für die Logik verwende ich "Node Red", und ich habe begonnen, OpenHAB nach einer komplizierteren Lösung zu durchsuchen.

Ich habe auch meine eigenen Arduino / MQTT-Geräte für meine 12-V-DC-Geräte gebaut und verwende ein ESP8266-basiertes Produkt für meine 230-V-AC-Geräte.

MatsK
quelle