Node-RED : IoT mit Rocrail MQTT Client Service

Internet of Things, MQTT, Node-RED
rjversluis
Site Admin
Posts: 39295
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by rjversluis » 27.12.2017, 17:38

Hi Claus,

größte Manko an der ganze Geschichte ist das es mehrere extra Abhängigkeiten gibt.

Ohne fundierte System Kenntnis ist der Hürde zu hoch.

Ein Use-Case wäre wenn Rocrail der WLANmaus nicht unterstützen würde, dann könnte man es mit knowhow und Programmierkenntnis mittels Node-RED mit einander verknüpfen.
Aber das macht niemand weil der Aufwand zu groß ist und es dann einfacher wäre um der kleine z21 zu kaufen.

peter&basti
Moderator
Posts: 6113
Joined: 09.01.2012, 22:09
Location: Vienna, Austria

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by peter&basti » 27.12.2017, 17:52

Hallo Rob,

gibt es in der node-red Umgebung eigentlich einen Node, der zb auf einem Raspi in eine Datenbank schreibt?

Usecase:

- Textausgabe der Fahrplaninformationen aus RR in eine mini DB, per Script und Textfeld, so wie das auch bei den Bahnsteiganzeigen funktioniert.
(so wie das Script von Gerrit derzeit läuft) Es könnten aber mit einem Query schlichtweg alle FP ausgelesen werden und alle relativen berechnet werden für 24 Stunden, bzw. eine Woche bei Systemstart.
- Fahrplan Anzeige dann zB auf HTML Basis mit ÖBB oder DB stylesheets, Uhrzeit Ticker kommt minütlich von Rocrail. auch über ein Textfeld.
- Datenbankzugriff dann immer 10 Zeilen nach Uhrzeit und Anzeige auf dem Miniscreen

Dann könnte Gerrit einen guten Teil der Scripte wegtun und der Rest läuft zB auf einem Rocnetnode :wink:

Infrastruktur (Raspi3 und 5 Zoll Display) zum testen hätte ich schon ... :wink:

Das wäre ein Rocrail-nativer Usecase der viele Anwender ansprechen könnte...

rjversluis
Site Admin
Posts: 39295
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by rjversluis » 27.12.2017, 17:56

Hi Peter,

es gibt fast für alles ein Node, auch für Datenbanken.

nice2have
Moderator
Posts: 1762
Joined: 24.01.2013, 14:29
Location: Erftstadt

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by nice2have » 27.12.2017, 18:00

Hallo Peter,
ganz so einfach ist das nicht :wink: Du mußt auch regelmäßig den Status vom Zug weiterleiten. Da hilft die Datenbank erst einmal nicht. Aber ich bin ja dran, brauche nur Zeit das Ganze reifen zu lassen. Rob hat hier schon gute Ansätze geliefert, mehr kann er auch nicht tun :wink: Ich brauche einfach Zeit :D

Nachtrag: Mein Ziel ist es das ganze HTML und CSS basiert als einfache Lösung zur Verfügung zu stellen. Das soll aber ein rundes Paket werden.

peter&basti
Moderator
Posts: 6113
Joined: 09.01.2012, 22:09
Location: Vienna, Austria

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by peter&basti » 27.12.2017, 18:18

Hallo Gerrit,

ich wollte nur mal einen Use-Case skizzieren .... :wink:
Eine DB Struktur mit den FP Basisinformationen müsste man nicht sortieren, das ist mein Gedanke.

nice2have
Moderator
Posts: 1762
Joined: 24.01.2013, 14:29
Location: Erftstadt

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by nice2have » 28.12.2017, 17:22

Moin zusammen,

Ich möchte hier jetzt auch mal ein Erfolgserlebnis berichten :wink:
so - nach ein paar Anlaufschwierigkeiten ist es mir nun auch gelungen den Broker unter OSX zum Laufen zu bekommen :oops:
Das ist eigentlich nicht schwierig, hat mich aber trotzdem einige Recherche im Internet gekostet.
Deshalb hier mal eine kleine Anleitung dazu:
Der MQTT Broker "Mosquitto" wird bei OSX über Homebrew installiert. dazu muß man als erstes Hombrew installieren.
Dann läd man sich mosquitto herunter

Code: Select all

brew install mosquitto
Um den Broker als Server jetzt dauerhaft zu starten, wenn man den Rechner einschaltet gibt man im Terminal folgendes ein

Code: Select all

ln -sfv /usr/local/opt/mosquitto/*.plist ~/Library/LaunchAgents
Danach ist ein Neustart notwendig. Wenn man diesen vermeiden möchte, kann man den Broker auch direkt starten mit

Code: Select all

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mosquitto.plist
Mit

Code: Select all

launchctl start homebrew.mxcl.mosquitto
kann man den Broker neu starten.
Mit

Code: Select all

launchctl stop homebrew.mxcl.mosquitto
kann man den Broker stoppen.

Jetzt habe ich mir Rob's Beispiel genommen und nachgestellt - Es funktioniert

Code: Select all

20171228.165926.645 r9999I mqttread OClntCon 0766 broker publish: [<sys cmd="go"/>]
20171228.165926.645 r9999a mqttread OModel   2556 sys: go
20171228.165926.645 r9999I mqttread OModel   2599 informing 14 listeners of a system event name=sys val=go...
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 1216_008-3: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 2070_058-9: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 2016_084-2: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 1016_038-0: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 1116_202-1: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 1014_008-5: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 4124_003-7: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 1044_501-3: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 1116_179-1: sys
20171228.165926.646 r9999a mqttread OLoc     0820 event for loco 4020_277-2: sys
20171228.165926.647 r9999a mqttread OLoc     0820 event for loco 2016_012-4: sys
20171228.165926.647 r9999a mqttread OLoc     0820 event for loco 1116_147-8: sys
20171228.165926.647 r9999a mqttread OLoc     0820 event for loco 1144_248-2: sys
20171228.165926.647 r9999a mqttread OWeather 0102 event for weather : sys go
20171228.165926.654 r9999c tid0x4C3 OVirtual 0595 Global power ON
20171228.165948.333 r9999I mqttread OClntCon 0766 broker publish: [<sys cmd="stop"/>]
20171228.165948.333 r9999a mqttread OModel   2556 sys: stop
20171228.165948.333 r9999I mqttread OModel   2599 informing 14 listeners of a system event name=sys val=stop...
20171228.165948.333 r9999a mqttread OLoc     0820 event for loco 1216_008-3: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 2070_058-9: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 2016_084-2: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 1016_038-0: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 1116_202-1: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 1014_008-5: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 4124_003-7: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 1044_501-3: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 1116_179-1: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 4020_277-2: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 2016_012-4: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 1116_147-8: sys
20171228.165948.334 r9999a mqttread OLoc     0820 event for loco 1144_248-2: sys
20171228.165948.334 r9999a mqttread OWeather 0102 event for weather : sys stop
20171228.165948.336 r9999c tid0x4C3 OVirtual 0580 Global power OFF
Jetzt kämpfe ich noch damit, das die Verbindung zwischendurch abgebaut wird.

Code: Select all

20171228.170117.400 r9999I mqttread OSocket  0677 Other side has closed connection.
20171228.170117.411 r9999W mqttread OClntCon 0746 mqtt broken socket
20171228.170122.415 r9999I mqttread OMQTT    0129 trying to connect to broker 127.0.0.1:1883
20171228.170122.422 r9999I mqttread OMQTT    0133 connected to 127.0.0.1:1883 with ID [RocrailService]
20171228.170122.423 r9999I mqttread OMQTT    0344 SUBSCRIBE: Topic=rocrail/service/client
20171228.170252.543 r9999I mqttread OSocket  0677 Other side has closed connection.
20171228.170252.560 r9999W mqttread OClntCon 0746 mqtt broken socket
20171228.170257.561 r9999I mqttread OMQTT    0129 trying to connect to broker 127.0.0.1:1883
20171228.170257.562 r9999I mqttread OMQTT    0133 connected to 127.0.0.1:1883 with ID [RocrailService]
20171228.170257.562 r9999I mqttread OMQTT    0344 SUBSCRIBE: Topic=rocrail/service/client

rjversluis
Site Admin
Posts: 39295
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by rjversluis » 28.12.2017, 17:34

Hi Gerrit,

normal startet Rocrail ein KeepAlive prozess, aber wenn der Mosquitto der KeepAlive Wert verschluckt wird immer wieder die Verbindung gekappt.
Am beste Mosquitto auf Raspi oder NAS laufen lassen.

nice2have
Moderator
Posts: 1762
Joined: 24.01.2013, 14:29
Location: Erftstadt

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by nice2have » 28.12.2017, 17:58

Hi Rob,
NAS habe ich nur als Fritzbox, wo es ja bekanntlich nicht geht :(
Einen Pi habe ich leider auch noch nicht, das wird aber wohl die nächste Anschaffung 8)

lordbrummi
Posts: 1993
Joined: 01.09.2014, 11:12

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by lordbrummi » 30.12.2017, 10:15

Hallo zusammen,

nur mal eine andere Idee für einen Anwendungsfall:

Ich habe derzeit einen Amazon Echo2 zum testen da (Alexa mach dies....).
Für Alexa gibt es Apps, die dort 'Skills' heissen. Unter anderem auch einen Hue Skill mit dem sich die Lampen und Szenen per Sprache steuern lassen, was sehr gut funktioniert.

Vielleicht wäre das eine Idee (für MQTT oder Skill, ich bin da in dem Thema leider nicht drin), RR per Sprache zu steuern.

Grüße Dieter

rjversluis
Site Admin
Posts: 39295
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by rjversluis » 30.12.2017, 11:13

Hi Dieter,

Alexa, Siri...
Das ging mit Win95 schon. Hinter ein Kollege sage: "Alles selektieren", "Löschen".
Also ich schalte diese Mist immer aus.
alexa.jpg

lordbrummi
Posts: 1993
Joined: 01.09.2014, 11:12

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by lordbrummi » 30.12.2017, 11:21

Hi Rob,

ja ich kenne die Problematik rund um dieses Thema.
Aber ein RR sprachgesteuert wäre schon witzig:
RR, Lok 0815 stop.... :wink:

Grüße Dieter

peter&basti
Moderator
Posts: 6113
Joined: 09.01.2012, 22:09
Location: Vienna, Austria

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by peter&basti » 30.12.2017, 12:45

Hi Dieter,

wenn schon akustische Steuerung, dann höchstens den Abfahrtspfiff des Zugführers....
Da gibt's auch wenig(er) Verwechslungsgefahr :wink:

Also schon mal Pfeiferl besorgen, falls nicht vorhanden :wink:

... und Deine Cars reagieren dann auf "Tatü Tata" wenn ein Einsatzfahrzeug kommt und fahren zur Seite :?: ..... :idea:

lordbrummi
Posts: 1993
Joined: 01.09.2014, 11:12

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by lordbrummi » 30.12.2017, 13:04

peter&basti wrote:... und Deine Cars reagieren dann auf "Tatü Tata" wenn ein Einsatzfahrzeug kommt und fahren zur Seite :?: ..... :idea:
Hallo Peter,

ja die biegen dann bei nächster Gelegenheit ab oder fahren in die Bushaltestelle.
Man muß nur mittels xml Script prüfen, ob von hinten ein Einsatzfahrzeug kommt und mittels Blockclasses steuert man den Weg frei :wink:

Grüße Dieter

Schorse
Posts: 4970
Joined: 12.09.2008, 19:38
Location: D - Niedersachsen

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by Schorse » 30.12.2017, 13:44

Hallo,
Aber ein RR sprachgesteuert wäre schon witzig:
ich hatte ja schon vor einigen Jahren unterstellt das jemand (in ähnlicher Weise) danach fragt...Die Technik bewegt sich ja in diese Richtung.

nice2have
Moderator
Posts: 1762
Joined: 24.01.2013, 14:29
Location: Erftstadt

Re: Node-RED : IoT mit Rocrail MQTT Client Service

Post by nice2have » 02.01.2018, 09:52

Hallo Rob,
vermutlich mal eine "dumme" Frage, aber was muß genau im MQTT-Node für eingehende Infos eingestellt werden, damit mir im Debug die Infos angezeigt werden ?

Ich nehme das Minimal-Beispiel, wie hier beschrieben:
http://wiki.rocrail.net/doku.php?id=nod ... ple_flow_1

Was bei mir funktioniert ist die "Sende-Richtung", sprich ich kann Power on / off schalten. Über den MQTT "rocrail/service/info" bekomme ich aber über msg.payload nichts angezeigt.

Bei MQTT habe ich Server: 127.0.0.1 und Port: 1883 QoS: 1 (also Default-Werte eingestellt).

Da die Einstellungen in der Sende-Richtung funktionieren, kann es ja eigentlich nicht an den Server-Einstellungen liegen, trotzdem bekomme ich keine Infos über "rocrail/service/info" herein :?

Post Reply

Return to “IoT (DE)”