Ereignis auf einem, Aktion auf zweitem Rasperry

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Zusammen,

    ich möchte folgendes Projekt realisieren:

    Wenn auf einem Raspberry ein bestimmter Zustand Eintritt (z.B. Schalter betätigt, Temperatur überschritten), soll momentan auf einem, später auch auf mehreren anderen eine Aktion (z.B. Relais schalten) ausgelöst werden. Die Geräte befinden sich in unterschiedlichen Netzwerken, sodass die Übertragung über das Internet erfolgen muss.
    Das ganze soll zusätzlich auch noch möglichst schnell funktionieren.

    Eine Möglichkeit wäre sicherlich über URL-Aufruf. Vorraussetzung wäre dafür jedoch das jeder Standort über eine feste IP bzw. DynDNS oder ähnlichem erreichbar ist. Außerdem würde es bis der letzte PI aufgerufen wird wahrscheinlich einige Sekunden dauern.

    Mir schwebt da irgendwie so eine Art Push-Benachrichtigung vor, habe aber noch keinen vernünftigen Ansatz.

    Freue mich über Vorschläge.

    Vielen Dank schon mal im Voraus.

  • Da ist ein Ansatz: Server fuer die Aussenstationen und Client fuer den Steuerrechner

    Der Code ist noch sehr primitiv, aber er laeuft ;)

    Verschiedene Netzwerke sind kein Problem, TCP/IP kann das problemlos routen.

    DynDNS braucht es eigentlich nicht, das koennten die PIs gleich selber machen.
    Mindestens einer sollte aber eine fixe IP haben.

    Wenn der Steuerrechner eine fixe IP bekommt, koennten die anderen auch den
    Zustand abfragen.

    Einmal editiert, zuletzt von Tell (5. August 2015 um 10:35)


  • Eine Möglichkeit wäre sicherlich über URL-Aufruf. Vorraussetzung wäre dafür jedoch das jeder Standort über eine feste IP bzw. DynDNS oder ähnlichem erreichbar ist. Außerdem würde es bis der letzte PI aufgerufen wird wahrscheinlich einige Sekunden dauern.


    Ein IP brauchst du immer - ohne ist der Rechner aus dem Internet nun mal nicht erreichbar.


    Mir schwebt da irgendwie so eine Art Push-Benachrichtigung vor, habe aber noch keinen vernünftigen Ansatz.


    Auch einen Push-Nachricht braucht ein Netzwerk-Protokoll und ein Netzwerk. Heißt: Netzwerklatenz hast du _immer_. Worauf du u.U. Einfluss hast die Wahl der Protokolls / der Kommunikation und damit auch auf den Overhead des Protokolls, der ggf. eine gewisse Latenz verursacht.

    Zitat


    Das ganze soll zusätzlich auch noch möglichst schnell funktionieren.


    Schnell ist relativ. Wenn du die Daten über das Internet überträgst hast du zwangsläufig eine Latenz, die du schlecht beeinflussen kannst...

    Gruß, noisefloor

  • Sind wir doch mal realistisch: Wenn du es richtig machst, ist URL-Aufruf schnell!
    Du kannst die verschiedenen Pis nahezu zeitgleich aufrufen, du musst ja nicht auf das laden der Seite warten bevor du den nächsten rufst.
    Die Alternative wäre polling, also dass die anderen Pis ständig nachfragen ob sie etwas tun sollen... blöde Idee über Internet.
    Das von SmartPhones verwendete Push-System ist übrigends genau so wie das Aufrufen einer URL, bloß ohne URL und über das Handynetz. Es gibt nur diese zwei Varianten. Einer spricht an oder der andere fragt ständig nach.

    Und das "Eine IP brauchst du immer"... ja es war aber nciht von "einer" IP die Rede, sondern von einer statischen, und die braucht man im Internet nicht.

  • Hallo,
    man könnte das ganze auch über ein VPN realisierne, damit hätte man das Problem, dass sich die IP Adressen ändern nich, und man könnte nicht von außerhalb darauf zugreifen.

    MfG /root

    Ein "Gefällt mir" oder eine Bewertung wäre nett.

  • Wenn du einen Internet-Server hast kannst du diesen auch als Verteiler verwenden und brauchst dann keine DynDNS da der Internet-Server eine statische IP hat...
    Alle Clients verbinden sich zu dem Master und warten auf eine Aktion. Sobald eine Aktion von einer der Clients beim Master eintrifft, verteilt der Master zum Beispiel an alle-ausser-dem-Sender verbundenen Clients eine Aktion.
    Dafür bietet sich dann auch Sockets an, wobei ich statt UDP lieber TCP verwenden würde, sonst kann es vorkommen das bei UDP ein Datenpaket nicht an kommt.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!