Usecase: Loco Speed Dashboard

Internet of Things, MQTT, Node-RED
Post Reply
peter&basti
Moderator
Posts: 6120
Joined: 09.01.2012, 22:09
Location: Vienna, Austria

Usecase: Loco Speed Dashboard

Post by peter&basti » 17.01.2018, 16:14

Hallo Freunde,

ich mal versucht, ein Dashboard unter Anderem für Loktachos zu bauen. Im Endausbau soll hier die reale Geschwindigkeit, die vom Railcom Decoder (ZIMO) ausgegeben wird, angezeigt werden. Das geht natürlich nicht in der virtuellen Simulation.

Ich verwende nun "V" das ist der Prozentwert (weil ich Prozent mit km/h Umrechnung in Rocview benutze), der richtige Wert wäre "V_realkmh"

Rein technisch funktioniert der Flow:
dashboard.png
Ich habe aber bis jetzt keine Möglichkeit gefunden, das Dashboard dynamisch zu gestalten. Derzeit sind alle 4 "gauges" hart mit einer Lok verdrahtet.
Ideal wäre:

- dass ein Tacho nur angezeigt wird, wenn zB eine Lok ungleich idle ist.
- dass die Überschrift aus der Lok id kommt
- etc

Soweit ich mich bisher eingearbeitet habe, ist das beim Gauge-Node nicht machbar.
Falls jemand einen Tipp hat, wird dankbar entgegengenommen :idea:
Attachments
tacho-flow.txt
(2.19 KiB) Downloaded 5 times

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

Re: Usecase: Loco Speed Dashboard

Post by peter&basti » 17.01.2018, 16:28

Hallo Freunde,

noch eine Frage: wo finde ich eine Anleitung, wie die einzelnen vorgefertigten Anzeige-Objekte im Dashboard individuell angeordnet/positioniert werden können?

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

Re: Usecase: Loco Speed Dashboard

Post by rjversluis » 17.01.2018, 17:02

Hi Peter,

super Usecase. ;)
Ideen sind immer am beste um neue Möglichkeiten zu forschen. :)

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

Re: Usecase: Loco Speed Dashboard

Post by peter&basti » 17.01.2018, 17:25

Hi Rob,

hast Du vielleicht auch ein paar Tipps zu meinen Fragen?

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

Re: Usecase: Loco Speed Dashboard

Post by rjversluis » 17.01.2018, 17:40

Abend Peter,

ich entwickle nicht im Team Nod-RED, so fragen über Dashboard kann ich nicht beantworten.

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

Re: Usecase: Loco Speed Dashboard

Post by nice2have » 17.01.2018, 20:03

Hallo Peter,
tolle Sache und Hut ab, daß Du Dich da einarbeitest :thumb_up:
noch eine Frage: wo finde ich eine Anleitung, wie die einzelnen vorgefertigten Anzeige-Objekte im Dashboard individuell angeordnet/positioniert werden können?
Wenn Du die Infos dazu nicht direkt unter Node-Red Dashboard findest, sieht es schlecht aus. Ich habe mir in den letzten Tagen auch einen "Wolf" gesucht. Google war da noch mein bester Freund :wink: Die Widget-Größe ist auf jedenfalls einstellbar. Ich nehme mal an, daß bei Site-Größe 100% die Widgets der Reihe nach angeordnet werden.
Ich habe aber bis jetzt keine Möglichkeit gefunden, das Dashboard dynamisch zu gestalten. Derzeit sind alle 4 "gauges" hart mit einer Lok verdrahtet.
Ideal wäre:

- dass ein Tacho nur angezeigt wird, wenn zB eine Lok ungleich idle ist.
- dass die Überschrift aus der Lok id kommt
- etc
Das geht nur über einen Function-Node und einlesen in javascript Programmierung. Denn die angezeigten Widgets sind festgelegt, in dem Moment wo sie angelegt werden. Da ist keine Dynamik machbar (mir nicht bekannt). Du mußt also den umgekehrten Weg gehen und festlegen, wie viele Loks gleichzeitig angezeigt werden sollen und dann nur die, die keinen Status "idle" haben (<if>). Das Ganze wird dann über <msg.payload> an das entsprechende Widget übertragen.

Da hast Du Dir eine große Aufgabe gestellt :wink:

Ich bin aber auch noch nicht fertig. Dynamische Tabellen haben es genauso in sich :roll:

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

Re: Usecase: Loco Speed Dashboard

Post by peter&basti » 17.01.2018, 23:04

Hallo Gerrit,

Danke für Deine Rückmeldung, deine Ausführungen haben mich auf ein mögliches Design gebracht:
tachodesign.PNG
Zuerst (in der obersten Reihe) Textfelder, welche die Loco ID anzeigen
Danach die Tachos...

Für das Layout habe ich auch schon einen Plan. Wenn alle Elemente zB mit 6 Einheiten breit definiert werden und der Rahmen mit 24 EInheiten definiert ist, dann sortiert sich alles schön ein...

Für die Function (bis jetzt hatte ich eine je Tacho, welches hardcoded die Lokgeschwindigkeit liest) oder auch mehrere, habe ich allerdings noch keinen Plan...

Was ich noch nicht durchblickt habe, jede Ausgabe heisst msg.payload, da gibt es offenbar keine Variation..

Kann man eigentlich zwei Function Nodes hintereinander hängen, d.h. der erste macht das Auslesen und aufteilen auf Variable und der zweite dann die Ausgabe?

Ich werde das jedenfalls versuchen....

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

Re: Usecase: Loco Speed Dashboard

Post by peter&basti » 17.01.2018, 23:24

Hallo Gerrit,
Kann man eigentlich zwei Function Nodes hintereinander hängen, d.h. der erste macht das Auslesen und aufteilen auf Variable und der zweite dann die Ausgabe?

Ich werde das jedenfalls versuchen....
Also der 2. Function Node bekommt nichts mit von den Variablen des ersten.

Oder ich habe das Konzept von msg.payload noch nicht verstanden.

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

Re: Usecase: Loco Speed Dashboard

Post by nice2have » 18.01.2018, 07:52

Moin Peter,
Was ich noch nicht durchblickt habe, jede Ausgabe heisst msg.payload, da gibt es offenbar keine Variation..
Doch, Du kannst es auch msg.xyz nennen, dann mußt Du es nur im nächsten Node so abfragen.
Kann man eigentlich zwei Function Nodes hintereinander hängen, d.h. der erste macht das Auslesen und aufteilen auf Variable und der zweite dann die Ausgabe?
Ja sicher, warum nicht ?
Also der 2. Function Node bekommt nichts mit von den Variablen des ersten.
versuch es mal mit flow.set() und flow.get(). Damit werden Variablen in einem Flow auch anderen Nodes zur Verfügung gestellt (ähnlich globalen Variablen).
https://nodered.org/docs/writing-functions#flow-context
https://nodered.org/docs/writing-functi ... e-messages

Post Reply

Return to “IoT (DE)”