Forum: PC-Programmierung Raspberry Pi, Nachrichten über das lokale Netzwerk versenden


von H. C. (sunshine)


Lesenswert?

Hi,

ich möchte gerne von meinem Raspberry aus die Mess-Ergebnisse über das 
lokale Netzwerk an andere Teilnehmer im Netz versenden.

Das Internet möchte ich dabei nicht in Anspruch nehmen, d.h. es soll 
auch funktionieren, wenn das Internet nicht funktioniert!

Die Nachrichten möchte ich von meinen Windows-PCs, Linux-PCs und 
Android-Handys empfangen können.

Habt ihr einen Tipp, wie ich das realisieren kann?

: Verschoben durch User
von RP6conrad (Gast)


Lesenswert?

Bei mir lauft eine Webserver (Apache) auf den Pi. Damit hat jeden Zugang 
die auch Zugang hat auf das lokales Netzwerk. Internetzugang brauchts du 
nicht für lokales Verkehr.

von Johannes R. (Gast)


Lesenswert?

Aus deiner Frage geht nicht hervor, wie genau die Nachrichten mit den 
Messergebnissen aussehen sollen, also ob du da auf ein bestimmtes Format 
festgelegt bist.
Falls nein: Ich nutze dafür MQTT mit Mosquitto auf dem Raspberry Pi. Es 
gibt für alle relevanten Systeme (Windows, Linux, Android, etc.) 
Programme, die einem sehr komfortabel den Zugriff auf diese Daten über 
das lokale Netzwerk ermöglichen.

von H. C. (sunshine)


Lesenswert?

Grundsätzlich möchte ich bei Alarm eine Nachricht senden, die ih dann am 
besten auf den verschiedenen Devices im Netzwerk angezeigt bekomme 
(automatisch, wie per Popup)

Ist ein MQTT Server besser/einfacher wie ein Apache Server?

von Wallhalla (Gast)


Lesenswert?

H. C. schrieb:
> automatisch, wie per Popup

Dann kommst du um eine Anwendung auf den Ziel Systemen nicht herum.
Irgendein Programm muss ja das "Popup" erzeugen und die Daten vom 
Netzwerk lesen

von guest (Gast)


Lesenswert?

H. C. schrieb:
> Grundsätzlich möchte ich bei Alarm eine Nachricht senden, die ih dann am
> besten auf den verschiedenen Devices im Netzwerk angezeigt bekomme
> (automatisch, wie per Popup)
>
> Ist ein MQTT Server besser/einfacher wie ein Apache Server?

Für den Fall wäre wohl MQTT geeigneter.
Wo kommt denn der Alarm her? Selbstgeschriebenes Programm?
Wenn man eh selber programmiert, wären eventuell UDP-Broadcastmessages 
die einfachste Möglichkeit.

von R. R. (elec-lisper)


Lesenswert?

Wenn du auf dem Zielsystem eh eine Anwendung brauchst
(weil du ja was tun willst (Popup)), dann ist die Wahl des Protokolls
auch relativ egal. MQTT ist an sich genau das richtige,
aber auch da muss man sich einarbeiten. An und für sich würde
aber ein ganz einfaches UDP basiertes Protokoll genauso gut 
funktionieren
(welches an eine Broadcast-Adresse sendet).

MQTT könnte dir ein bissl von der Low-Level-Netzwerkprogrammierung
(hantieren mit Sockets) abnehmen, aber es wird dir nicht abnehmen
einigermaßen zu verstehen was du tust.

von Georg B. (diereinegier)


Lesenswert?

Man könnte im eigenen Netzwerk einen E-Mail-Server betreiben, nicht 
notwendigerweise auf dem RasPi und dorthin die Daten schicken. Jeder, 
der an den Ergebnissen interessiert ist, abonniert das Postfach. Das 
Popup erzeugt dann der E-Mail-Client.

von Rolf M. (rmagnus)


Lesenswert?

Wallhalla schrieb:
> H. C. schrieb:
>> automatisch, wie per Popup
>
> Dann kommst du um eine Anwendung auf den Ziel Systemen nicht herum.
> Irgendein Programm muss ja das "Popup" erzeugen und die Daten vom
> Netzwerk lesen

Man könnt ja RSS nutzen. Da sollte es für jedes Zielsystem schon was 
geben.

von R. R. (elec-lisper)


Lesenswert?

Man könnte auch VoIP bzw. SIP benutzen, SMPP, SCTP, IRC, XMPP, SOAP
oder über ODBC in eine Oracle SQL-Datenbank schreiben,
auf welche alle Clients dann zugreifen.
Es gibt soooooo viele Möglichkeiten, und soooo viele davon sind
unnötig komplex. Bevor ich mit Technologien wie XML und HTTP (=> RSS)
auf so ein Problem schieße, guck ich mir die Größe des Problems an.
SMTP ist schon leicht besser, vorallem weil viele Clients es 
unterstützen.

Hängt alles auch immens von der Erfahrung die man mit entsprechenden
Technologien hat ab. Wenn man jeden Tag mit HTTP arbeitet, isses
trivial. Vorallem weil viele (im Grunde alle) Sprachen mit
Bibliotheken kommen und es im Notfall auch einfach selbst
implementiert werden kann.

Ist halt auch die Frage wie effizient alles sein soll. HTTP und polling
sind nicht besonders schonen was Energie-Ressourcen angeht. Also inbes.
für mobile Geräte nicht allzu gut (es sei denn, man implementiert
long-polling mit HTTP, das lindert das Problem etwas).

UDP, sehr low level, leider auch ohne Fehlerkorrektur oder 
Zuverlässigkeit,
bietet dagegen echtes push-notifying, sogar Broadcasts werden 
unterstützt
(sofern es die lokalen Netze zulassen). Ist auch die Frage, ob
UDP broadcasts über WLAN auf den mobilen Geräten ankommen - müsste
man mal mit experimentieren. Aber es würde erfordern, dass man
eine eigene App für das mobile Gerät entwickelt. Also gleich mal
das Android SDK runterladen und für 1-2 Monate einarbeiten.
Dagegen wirkt HTTP und bissl JavaScript geradezu erfrischend einfach,
aber dann muss auch immer der Browser laufen - auch doof.

SMTP geht meist gut für mobile Geräte, die haben alle einen Mail-Client
mit an Bord. Auf Desktops muss man eben sein Mail-Programm offen
haben und/oder als Tray-Icon laufen lassen. Was Einfachheit angeht,
gewinnt SMTP wie Georg es vorschlug.
Wenn es effizienter sein soll, kann UDP ggf. hilfreich sein, kostet
aber mehr eigenen Aufwand.

MQTT hat nicht ganz so weite Verbreitung, aber auch hierfür gibts
bereits Android Clients (MyMQTT offenbart eine kurze Google-Suche).
Ist aber ein Weg, der noch nicht von so extrem vielen Leuten beschritten
wurde wie SMTP, aber vergleichsweise mehr als eine eigene UDP-Lösung.

PS: MQTT hat natürlich auch den unschlagbaren Vorteil, dass es extra für
solche Zwecke entwickelt wurde.

: Bearbeitet durch User
von H. C. (sunshine)


Lesenswert?

Hallo,
vielen Dank für eure Hilfe!!
Ich habe mir MQTT mal installiert und denke, dass könnte der beste Weg 
sein.

Nun bin ich noch auf der Suche nach den entspechenden Apps bzw. der 
entsprechenden Software unter Windows, die die Nachrichten in Empfang 
nehmen.
Als App für Android möchte ich mir "IoT MQTT Dashboard" näher anschauen 
für Windows hab ich mir "MQTTBox" ansehen. Wichtig wäre mir halt, dass 
ich auf meinen Devices einen Alarm bekomme und sich das Handy / der 
Rechner auch wirklich bei mir meldet, so dass ich den Alarm nicht 
verpasse!
Hat wer von euch Erfahrungen mit dem Empfänger?

von imonbln (Gast)


Lesenswert?

H. C. schrieb:
> Das Internet möchte ich dabei nicht in Anspruch nehmen, d.h. es soll
> auch funktionieren, wenn das Internet nicht funktioniert!

d.h. wenn du Nicht Zuhause (im Netzwerk) bist verpasst du einen Alarm :)
oder siehts in erst wenn du wieder im Netzwerk bist ( falls dann das 
Netzwerk noch steht...)

Ich hoffe das hast du bei deinen Überlegungn bedacht.

von R. R. (elec-lisper)


Lesenswert?

imonbln schrieb:
> H. C. schrieb:
>> Das Internet möchte ich dabei nicht in Anspruch nehmen, d.h. es soll
>> auch funktionieren, wenn das Internet nicht funktioniert!
>
> d.h. wenn du Nicht Zuhause (im Netzwerk) bist verpasst du einen Alarm :)
> oder siehts in erst wenn du wieder im Netzwerk bist ( falls dann das
> Netzwerk noch steht...)
>
> Ich hoffe das hast du bei deinen Überlegungn bedacht.

Ich nehme an, er meint, dass ganze soll nicht über einen Server
"in der Cloud" arbeiten. Sondern der Server soll lokal im LAN stehen.

Und auf nen Einbruch-Alarm kann man doch meist eh nie schnell genug
reagieren, um etwas sinnvolles zu tun. Holt man die Polizei und es
war nachbars Katze, zahlt man noch drauf mit seiner selbst gebastelten
Lösung.

Das wirkungsvollste gegen Einbruch ist immernoch Absicherung der 
Zugänge.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.