Forum: Mikrocontroller und Digitale Elektronik Welches Protokoll für Nachricht von "internet thing" an Smartphone-App?


von Adam (Gast)


Lesenswert?

"IoT" ist bislang für mich nur ein buzzword, nun möchte ich aber von 
einem ESP8266 eine Nachricht ("Alarm!") an ein Smartphone (im selben 
Netzwerk) senden.
Erstmal internet- und serverlos. Später evtl. mit Verbindung über 
Internet.

Allerdings erfordert dies m.W. dann eine (always-on) "App" auf dem 
Smartphone, die eine Verbindung zum "thing" hält und etwaige Nachrichten 
dann als "notification" anzeigt.

- Gibt es so eine "universell" konfigurierbare App (Android/iOS)?
- Wie heißen die Stichworte, nach denen ich suche?
- Was wäre eine Minimallösung?
- Was ist aktuell die einfachste Lösung (der Weg des geringsten 
Widerstands)?

von MQTT (Gast)


Lesenswert?

MQTT ist das Lösungswort

Gibt auch fertige Apps für, welche sich einfach Konfigurieren lassen.
Erfordert allerdings einen Server. Dazu einen eigenen Aufsetzen oder ein 
gratis Inet-Angebot nutzen.

von THOR (Gast)


Lesenswert?

Ich würde da direkt auf E-Mail gehen, Internetverbindung ist vorhanden 
und SMTP ist ein denkbar einfaches Protokoll.

von ♪Geist (Gast)


Lesenswert?

- Gibt es so eine "universell" konfigurierbare App (Android/iOS)?

Ja gibt es, nennt sich Blynk. Ich finde die App toll, habe schon einiges 
mit der Umgesetzt.

von MQTT (Gast)


Lesenswert?

THOR schrieb:
> Ich würde da direkt auf E-Mail gehen, Internetverbindung ist vorhanden
> und SMTP ist ein denkbar einfaches Protokoll.

Und wie willst du das genau mit E-Mail umsetzen? Einen Mailserver 
einrichten, bloß um Nachrichten auf dein Handy zu schicken? Oder willst 
du einen Minimalistischen Mailserver auf dem IOT Gerät implementieren um 
von diesem Mails abzusenden? Unabhängig von dem Aufwand darfst du dir 
dann gleich noch eine Domain mieten, da deine Mails ohne passende 
Absender-Domain von jedem Maildienst abgewiesen werden.
Und das es ohne Server nicht geht sollte klar sein, da die Mailing-Apps 
für Smartphones nur Clients sind, welche Mails nicht direkt empfangen 
können. (Würde auch keinen Sinn machen)

Wenn der Threadersteller ein möglichst einfaches Protokoll mit möglichst 
umständlicher Einrichtung und wahnwitziger Komplexität haben will, kann 
man guten Gewissens eine Mail-Lösung empfehlen.

von MQTT (Gast)


Lesenswert?

♪Geist schrieb:
> Ja gibt es, nennt sich Blynk. Ich finde die App toll, habe schon einiges
> mit der Umgesetzt.

Blynk ist einfach eine proprietäre Implementierung des MQTT Ansatzes. 
Wer lieber eine abgeschottete anstatt einer offenen Lösung nutzen will 
hat hier zumindest nichts verloren (wenn auch nichts gewonnen).
Das man bei Blynk keinen Server einrichten muss ist im übrigen kein 
Argument, da es eine Reihe von (zum Teil kostenlosen) Dienst für 
MQTT-Server gibt. So z.B. CloudMQTT (Gratis für bis zu 10 gleichzeitige 
Geräte/Verbindungen).
Auch wird bei Blynk bisher kein SDK für die Entwicklung eigener Clients 
angeboten. Braucht man vlt. auch nicht aber es bringt auch nichts darauf 
zu verzichten. Da man, aufmerksame Leser werden es bereits erahnen, mit 
MQTT ein ganzes Arsenal an Bibliotheken nutzen kann um eigene Ideen 
umzusetzen.

PS.:
Als App für Android empfehle ich MQTT Dash aus dem Play Store.
Da ich kan IOS habe, kann ich da nichts empfehlen.

von Adam (Gast)


Lesenswert?

Danke soweit. Offene Software wäre besser. Einen Broker/Server könnte 
ich zur Not lokal oder global einrichten. Wie erfolgt denn die 
Authentisierung der clients (Verschlüsselung nicht erforderlich)?

Alternativ: gibt es evtl. auch eine App, die "einfach" eine 
(konfigurierbare) TCP-Verbindung zum "thing" aufbaut, und empfangene 
Daten als notification darstellt (und auch eine Info bei 
Verbindungsverlust)?

Oder gibt es evzl. "persistente" Browser-Apps o.Ä. (d.h. keine 
Entwicklungsschlüssel etc erforderlich)?

von Adam (Gast)


Lesenswert?

Authentifizierung

von Heinz (Gast)


Lesenswert?

Solange Dein Handy im Netzwerk / WLAN ist, hat es doch auf alle Fälle 
eine Verbindung zum Internet?
Schicke die Meldung doch an WhatsApp, Hangouts, ...

Hier ein anderes Beispiel:

http://www.instructables.com/id/Send-Notifications-to-Your-Phone-From-an-ESP8266/

von MQTT (Gast)


Lesenswert?

Adam schrieb:
> Wie erfolgt denn die
> Authentisierung der clients (Verschlüsselung nicht erforderlich)?

Die Autorisierung der Clients erfolgt über Username/Password, auch wenn 
keine Verschlüsselung eingestellt ist. Da diese aber auch 
unverschlüsselt übertragen werden ist hier der Schutzfaktor nicht 
besonders hoch. Besser wäre es Client, Server und Smartphone mit einem 
VPN zu verbinden. Damit muss man auch nicht auf die sichere 
Implementierung der einzelnen Komponenten vertrauen, solange man z.B. 
OpenVPN vertraut.

Adam schrieb:
> Alternativ: gibt es evtl. auch eine App, die "einfach" eine
> (konfigurierbare) TCP-Verbindung zum "thing" aufbaut, und empfangene
> Daten als notification darstellt (und auch eine Info bei
> Verbindungsverlust)?

Für eine App die TCP Daten unformatiert Anzeigt sehe ich persönlich 
keinen Anwendungsfall, von daher sollte schwerlich etwas fertiges zu 
finden sein.

Adam schrieb:
> Oder gibt es evzl. "persistente" Browser-Apps o.Ä. (d.h. keine
> Entwicklungsschlüssel etc erforderlich)?

Mit dem Ansatz der Browser-App wirst du nicht weit kommen, da diese 
keine reinen TCP Verbindungen unterstützen. Was diesen noch am nächsten 
kommt sind WebSockets. Einerseits ist deren Implementierung auf 
Smarthone-Browsern soweit ich weiß noch nicht sehr weit. Andererseits 
funktionieren diese nur mit einem HTTP-Server auf der Gegenstelle.

von MQTT (Gast)


Lesenswert?

MQTT schrieb:
> Die Autorisierung der Clients erfolgt über Username/Password, auch wenn
> keine Verschlüsselung eingestellt ist.

Jetzt habe ich nicht nur deinen Fehler zitiert, sondern diesen auch noch 
falsch. Natürlich muss dort Authentifizierung stehen.^^

von MQTT (Gast)


Lesenswert?

Heinz schrieb:
> Solange Dein Handy im Netzwerk / WLAN ist, hat es doch auf alle Fälle
> eine Verbindung zum Internet?
> Schicke die Meldung doch an WhatsApp, Hangouts, ...
>
> Hier ein anderes Beispiel:
>
> 
http://www.instructables.com/id/Send-Notifications-to-Your-Phone-From-an-ESP8266/

Unabhängig davon das du hier Dienste verschiedener Firmen aufzählst und 
keine Kommunikationslösungen wäre ein Ansatz über ein Chat-Protokoll wie 
XMPP (quelloffen, haufen Clients) möglich.
Man sollte allerdings beachten, das es einen Unterschied in der 
Charakteristik zwischen einem Nachrichtenstrom (wie bei einem 
Gespräch/Chat) und dem setzen von Statusmeldungen (Tür ist auf, Tür ist 
zu) gibt. Die entscheidende Frage ist, interessiert mich nur der letzte 
Stand oder wer wann was gesagt hat?

PS.: Die automatische Auswertung von Meldungen würde ich bei MQTT 
einfacher einschätzen als bei XMPP.

von Adam (Gast)


Lesenswert?

Kann jemand einen Client für iOS (iPhone) empfehlen? Es scheint nichts 
findbares zu geben..

von Adam (Gast)


Lesenswert?


von Sean G. (atmega318)


Lesenswert?

Adam schrieb:
> Kann jemand einen Client für iOS (iPhone) empfehlen? Es scheint
> nichts
> findbares zu geben..

Was auch noch eine recht simple Lösung für alle Platformen ist wäre 
Telegram. Dort kannst du in ein paar Minuten einen Chatbot einrichten, 
und dann ohne eigenen Server per GET-Request eine Push-Nachricht 
schicken. Ich mache es oft so, einfach weil's sehr, sehr simpel ist...

LG, Sean

von Adam (Gast)


Lesenswert?

Sean G. schrieb:
> Was auch noch eine recht simple Lösung für alle Platformen ist wäre
> Telegram.

Danke, das ist im o.g. instructables link beschrieben.

von MQTT (Gast)


Lesenswert?

Sean G. schrieb:
> Was auch noch eine recht simple Lösung für alle Platformen ist wäre
> Telegram. Dort kannst du in ein paar Minuten einen Chatbot einrichten,
> und dann ohne eigenen Server per GET-Request eine Push-Nachricht
> schicken. Ich mache es oft so, einfach weil's sehr, sehr simpel ist...

Betonung liegt auf "eigenen"

von THOR (Gast)


Lesenswert?

MQTT schrieb:
> Und wie willst du das genau mit E-Mail umsetzen?

Ne Mailadresse hat jeder und ne SMTP Mail bau ich dir mit ner 
Telnet-Konsole zusammen. Noch einfacher wirds nicht.

von Dieter (Gast)


Lesenswert?

Ich benutze für sowas gerne telnet. Robust und sicher.

von (prx) A. K. (prx)


Lesenswert?

Es gibt mit "Tasker" eine sehr universelle Automatisierungs-App für 
Android mit eigener simpler Programmierung, die auf allerlei Events 
reagieren kann und auch eine Programmierung einfachster Apps mit 
Schaltflächen für Aktionen erlaubt. Und dafür gibt es zig Plugins. Eines 
davon, "UDP Listener Tasker Plugin", reagiert der Beschreibung nach auf 
wählbare UDP Messages, d.h. es läuft dann ein Tasker Script los. 
Einfacher als per UDP Message geht nicht.

: Bearbeitet durch User
von Heinz (Gast)


Lesenswert?

MQTT schrieb:
> Unabhängig davon das du hier Dienste verschiedener Firmen aufzählst und
> keine Kommunikationslösungen

ist das jetzt hier auch verboten?

Ich vermute mal, Adam will einfach nur was, das funktioniert und das 
sein Problem möglichst einfach löst....

von Adam (Gast)


Lesenswert?

Im Prinzip ja. Aber offene Software ist schöner. Dafür richte ich auch 
einen eigenen Server ein. Für XMPP gibt es auch einige iOS clients.

Es gibt auch schon einige Projekte
https://www.google.de/search?q=esp8266+xmpp

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.