TOP
SSV Software Systems Registrieren  Registrieren
Einloggen, um private Nachrichten zu lesen  Einloggen, um private Nachrichten zu lesen
Startseite FAQ Suchen Mitglieder Profil  Login 
SSV Support-Forum
MQTT …

 
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> eSOM/3517
<<< Vorheriges Thema - Nächstes Thema >>>  
Beiträge der letzten Zeit anzeigen:   
Autor Nachricht
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1204

BeitragVerfasst am: 04.09.2014, 15:38    Titel: MQTT … Antworten mit Zitat

Hallo Forum.

Wir portieren gerade einen MQTT-Client in das Linux-Betriebssystem des eSOM/3517. In Zukunft gehört MQTT dann zum Standardlieferumfang eines eSOM/3517.

Gruß KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1204

BeitragVerfasst am: 12.09.2014, 15:30    Titel: Paho-Client … Antworten mit Zitat

Hallo Forum.

Wir können inzwischen den MQTT-Python-Client aus dem Eclipse-Paho-Projekt für das IGW/935 zur Verfügung stellen. Siehe https://pypi.python.org/pypi/paho-mqtt

Der Client ist sehr einfach zu handhaben. Ein MQTT-Publish lässt sich z. B. mit zwei Codezeilen erzeugen.

Code:
import paho.mqtt.publish as publish
publish.single("temp/random", "10.5", hostname="test.mosquitto.org")


Das Ergebnis dieses MQTT-Publish mit dem Topic temp/random an den Broker test.mosquitto.org kann man sehr eindrucksvoll über http://test.mosquitto.org/gauge/ visualisieren.

Gruß KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1204

BeitragVerfasst am: 13.09.2014, 07:32    Titel: Installation … Antworten mit Zitat

Hallo Forum.

Der MQTT-Client steht als Datei mit dem Namen igw935_python-paho.tgz zur Verfügung.

1. Übertragen Sie die Datei per FTP in das Verzeichnis /tmp des IGW/935

2. Verzweigen Sie in einer Konsolen-Sitzung per cd / in das root-Verzeichnis.

3. Führen Sie dann den Befehl tar –xzf /tmp/igw935_python-paho.tgz aus.

Das ist schon alles. Sie können den Client nun per Python benutzen.

Gruß KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1204

BeitragVerfasst am: 13.09.2014, 08:20    Titel: Hilfreiche Werkzeuge … Antworten mit Zitat

Hallo Forum.

Zu dem MQTT-Broker mosquitto gehören mit mosquitto_pub und mosquitto_sub auch zwei sehr hilfreiche Kommandozeilenwerkzeuge. Für Entwickler, die mit dem eSOM/3517-MQTT-Client Anwendungen entwickeln wollen, ist es ratsam, zumindest mosquitto_sub auf dem eigenen PC zu installieren (Downloads unter http://mosquitto.org/download/).

Hierzu ein Beispiel: Führen Sie auf dem PC den Client als Subscriber aus:

Code:
mosquitto_sub -h test.mosquitto.org -t hello/world


Führen Sie dann auf dem eSOM/3517 die beiden folgenden Zeilen Python-Code aus:

Code:
import paho.mqtt.publish as publish
publish.single("hello/world", "Hello!", hostname="test.mosquitto.org")


Die zweite Zeile können Sie im Python-Kommandozeileninterpreter beliebig oft mit einer anderen Message wiederholen.

Gruß KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1204

BeitragVerfasst am: 14.09.2014, 17:07    Titel: HTTP-to-MQTT Gateway … Antworten mit Zitat

Hallo Forum.

Gerade in der industriellen Automatisierung wird es wohl Jahre dauern, bis die meisten netzwerkfähigen Produkte eine direkte MQTT-Unterstützung bieten werden.

Das folgende Beispiel bildet ein HTTP-to-MQTT-Gateway. Es erwartet einen HTTP-GET-Request mit einem Query-String der Form „temp=value“. Mit Hilfe dieses Gateways können Systeme, die zumindest einen Sensorwert als HTTP-Request verschicken können, in MQTT-basierte Anwendungen integriert werden.

Code:
import urlparse
from BaseHTTPServer import BaseHTTPRequestHandler
import paho.mqtt.publish as publish

def tempHandler(value):
    print 'temp =  ' + value
    publish.single("temp/random", value, hostname="test.mosquitto.org")

class MyHandler(BaseHTTPRequestHandler):
    def do_GET(s):
        parsed_path = urlparse.urlparse(s.path)
        querystr = parsed_path.query.split('=')
        if querystr[0] == 'temp' and len(querystr) == 2:
            s.send_response(200)
            tempHandler(querystr[1])
        else:
            s.send_response(400)
        s.end_headers()

if __name__ == '__main__':
    from BaseHTTPServer import HTTPServer
    server = HTTPServer(('', 8080), MyHandler)
    print 'Starting server, use <Ctrl-C> to stop'
    server.serve_forever()

Bringen Sie den Code auf dem eSOM/3517 zur Ausführung. Adressieren Sie mit Ihrem PC-Webbrowser den URI http://test.mosquitto.org/gauge/ und beobachten Sie das virtuelle Instrument.

Rufen Sie auf Ihrem PC cURL auf und schicken Sie einen HTTP-Request an den HTTP-to-MQTT-Gateway. Z. B.:

Code:
curl –v http://192.168.2.161:8080/?temp=31.45


Dabei ist “192.168.2.161” die IP-Adresse des eSOM/3517.

Gruß KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1204

BeitragVerfasst am: 25.09.2014, 15:43    Titel: MQTT direkt aufs Smartphone! Antworten mit Zitat

MQTT direkt aufs Smartphone!

Hallo Forum.

Sie können den Temperaturwert aus dem zuvor beschriebenen Beispiel per Internet auch direkt auf ein Android-Smartphone senden. Ändern Sie die folgende Zeile

Code:
publish.single("temp/random", value, hostname="test.mosquitto.org")

in
Code:
publish.single("temp/random1", value, hostname="test.mosquitto.org")


Installieren Sie auf Ihrem Android-Smartphone aus dem Google Play Store die kostenlose App MyMQTT.

Konfigurieren Sie die App für den Server test.mosquitto.org und den Topic temp/random1. Beobachten Sie dann das Dashboard. Das ist schon alles.

Gruß KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1204

BeitragVerfasst am: 26.09.2014, 15:50    Titel: Letzter Wert geht verloren … Antworten mit Zitat

Hallo Forum.

Wenn man das zuvor beschriebene Beispiel mit der Android-App benutzt, fällt auf, dass der Wert aus dem letzten Publish für den Subscriber verloren ist, wenn er zum Message-Versendezeitpunkt nicht aktiv war (z. B. Smartphone ausgeschaltet).

So etwas lässt sich mit dem MQTT-Retain-Flag verhindern.

Ändern Sie einfach die folgende Zeile:

Code:
publish.single("temp/random1", value, hostname="test.mosquitto.org")

in
Code:
publish.single("temp/random1", value, retain=True, hostname="test.mosquitto.org")


Nun erhält ein Subscriber sofort nach jedem Verbindungsaufbau den letzten Wert vom Broker.

Gruß KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1204

BeitragVerfasst am: 08.01.2016, 11:50    Titel: MQTT per Node-Red … Antworten mit Zitat

Hallo Forum.

MQTT lässt sich mit dem eSOM/3517 auch über die Node.js/Node-Red-Laufzeitumgebung nutzen. Man muss dann nichts mehr programmieren, sondern nur noch per Webbrowser konfigurieren.

Erstellen Sie für einen ersten Test in der Node-Red-Weboberfläche des eSOM/3517 den folgenden Flow:



Konfigurieren Sie den Inject Node auf der linken Seite wie folgt:



Konfigurieren Sie dann den MQTT Out Node auf der rechten Seite mit Parametern wie in beiden folgenden Bildern:





Bringen Sie dann den gesamten Flow zur Ausführung und prüfen, ob sich der MQTT Out Node mit dem MQTT-Broker im Internet verbinden kann (grüner Punkt mit Text „connect“ unter dem MQTT Out Node-Symbol).

Für einen Test starten Sie nun bitte auf einem PC einfach einen MQTT-Client als Subscriber. Z.B. per Kommandozeile:

Code:
mosquitto_sub -h test.mosquitto.org -t hello/world


Klicken Sie in der eSOM/3517-Node-Red-Weboberfläche auf Schaltfläche des Inject Node. Dadurch wird der Text „Hello KDW“ an den MQTT-Broker geschickt. Dieser muss vom Kommandozeilen-Subscriber empfangen werden.

Gruß KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> eSOM/3517 Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht teilnehmen.

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Fon: +49(0)511 / 40 000-0
Fax: +49(0)511 / 40 000-40

sales@ssv-embedded.de

 

Impressum    ·    Datenschutz    ·    AGB

© 2018 SSV Software Systems GmbH. Alle Rechte vorbehalten.

ISO 9001:2015