» E2000 - PLUS
» Inter Raspberry Communication (IRCP)
Die Inter Raspberry Communication dient dazu, Daten zwischen zwei oder mehreren Raspberrys (MCU) auszutauschen. In der Logik befindet sich hierfür der IRCP Baustein. Dieser Baustein unterstützt zwei Modi:
- Nur Lokal: Alle Daten werden lokal in der MCU verarbeitet und nicht an einen IRCP - Server geschickt. Diese Funktion kann verwendet werden um lokale Sprungmarken zu erstellen.
- IRCP-Server: Alle Daten werden über einen IRCP-Server geschickt. Auf jeder MCU läuft ein solcher Server im Hintergrund. Der Status des Servers wird in der Übersicht im Administrationspanel angezeigt. Alle MCUs die Daten austauschen sollen müssen sich am gleichen IRCP-Server anmelden. Die Einstellungen zu den Verbindungen ist unter System -> IRCP-Server zu finden im Administrationspanel.
Jeder IRCP-Baustein kann ein Sender oder ein Empfänger sein. Ein Sender kann an seinem Eingang einen Wert entgegen nehmen und diesen an andere IRCP-Bausteine versenden. Ein Empfänger kann Daten von einem Sender entgegen nehmen und die Daten an seinem Ausgang bereitstellen. Damit mehrere solcher Verbindungen möglich sind müssen den Verbindungen verschiedene Namen gegeben werden. (Nicht zu verwechseln mit dem Gruppennamen, der nur zur Verbindung zwischen den MCUs verwendet wird).
Architektur
Das Inter Raspberry Communication Protocol (IRCP) ist ein Client-Server Protokoll. Alle Clients müssen sich zu einem Server verbinden der dafür sorgt, dass die Informationen an die richtigen Empfänger weitergeleitet werden. Die Server MCU sollte so gewählt werden, dass diese:
- Möglichst immer erreichbar ist
- Möglichst wenig in der Logik zu tun hat (viel traffic auf dem Server verlangsamt die Logik)
- Möglichst nicht zu häufig die IP-Wechselt (DynDns Account bei z.B. Selfhost anlegen)
IRCP-Gruppe
Durch die Funktion der Gruppe können auf dem selben Server mehrere MCU Netzwerke aufgebaut werden. Diese Funktion ist in den meisten Fällen nicht notwendig. Alle MCUs die kommunizieren sollen, müssen jedoch immer in der gleichen Gruppe sein.
Daher: Immer die gleiche Gruppe verwenden!
Verbindungsaufbau
Gehen wir von folgendem Szenario aus:
- 3 Raspberrys sollen vernetzt werden
- 2 Raspberrys sind in der gleichen Wohnung und einer ist in einer Ferienwohnung
Realisierung:
- Einer der 2 Raspberrys in der Wohnung wird zum IRCP-Server erklärt. (Raspberry_1 ist ab jetzt der Server)
- Einstellungen im Raspberry_1
- IP-Adresse/Host: 127.0.0.1
- Port: 64321
- Gruppe: MEINNETZ
- Einstellungen im Raspberry_2
- IP-Adresse/Host: 192.168.0.114 (Adresse des Raspberry_1)
- Port: 64321
- Gruppe: MEINNETZ
- Einstellungen im Raspberry_3
- IP-Adresse/Host: meine.wohnung.de
- Port: 6622 (Portweiterleitung auf 192.168.0.114 mit dem Port 64321)
- Gruppe: MEINNETZ
- Nach diesen Einstellungen können alle drei MCUs kommunizieren.
Benennung der Ports
Für jeden IRCP-Baustein kann ein Name vergeben werden. Die Namen des Senders und des dem entsprechenden Empfängers müssen immer gleich sein. Ein Name darf keine Leerzeichen enthalten da sonst die Verbindung nicht hergestellt werden kann. Sonderzeichen und Umlaute sollten auch vermieden werden. Es kann hier zu unvorhersehbaren Problemen kommen. Die Anzahl der Verbindungen ist nicht begrenzt. (Zu viele Verbindungen verlangsamen die Logik-Abarbeitung)
Zuletzt geändert 26.06.2018 - 11:19:18