NEWS
Node Red vs Javascript Pro und Cons
-
Ich habe mich die letzten 4 Tagen ziemlich intensiv mit Node Red auseinandergesetzt und frage mich, für welche Anwendungsfälle Node Red für mich in Frage kommt und für welche es ineffizient ist. Ich programmiere derzeit alles in Javascript, Blocky habe ich noch nie ausprobiert.
Allgemein Node Red erfordert einen ziemlichen Paradigmenwechsel und das kostet am Anfang ziemlich viel Zeit.
Ich habe mal ein paar ,relativ einfache Abläufe "übersetzt" und wurde dann zum Schluß natürlich auch schneller.
Die Pros
-
Was ich gut finde, sind die XML, HTML parser, die das Abfragen und Parsen von Webseiten wirklich super einfach machen.
-
Node Red bringt auch Adapter (Nodes) mit, die bei ioBroker fehlen. In meinem Fall waren das der Email Empfangsknoten und Alexa Local. Die Verwendung und die Kopplung mit ioBroker war kinderleicht und ließ sich mit minimalen Aufwand bewerkstelligen
-
Das Dashboard sieht auf den ersten Blick auch sehr schön aus und erlaubt eine relativ abstrakte Definition der Inhalte, was mir gut gefällt. Es hat mich bzgl. des Abstraktionslevel ein bisschen an Openhab errinnert. Allerdings man hat viel zu wenig Möglichkeiten das Layout zu beeinflussen. DIese dynamische Anpassung des Layout in Abhängigkeit vom der Bildschirmgröße ist m.M. noch ziemlich unausgegohren oder ich habe das Konzept noch nicht ganz verstanden.
-
Was ich toll fand am Dashboard sind die Chart und Gauge Nodes. Es wirklich super einfach schnell mal ein Chart zu erstellen. Kein Vergleich zu dem ioBroker VIs mit dem hochkomplexen Flot Widget und Histroy Adapter.
-
Ich habe auch mal den Homematic CCU Node ohne den Umweg über ioBroker ausrprobiert. Gefällt mir auch sehr gut, insbesondere das User Interface die entsprechenden Kanäle auszuwählen, ist super gemacht. Einen Node zu definieren, der z.B. alle Events erzeugt, die von allen Fensterkontakten im Haus ausgelöst wird, ist sehr einfach. VIel einfacher als mit dem ${} Konstrukt in Javascript
Die Cons
- Allgemein finde ich die Übersichtlichkeit bei komplexeren Abläufen eher geringer als in Javascript. Ab einer gewissen, relativ niedrigen Komplexität war ein Arbeiten am einem kleinen Notebook Bildschirm nur noch super mühselig. Auf meinem 26 Zoll Desktop ging es dann wieder etwas besser. MIt Subflows habe ich noch nicht groß experimentiert, vielleicht kann man damit dieses Problem etwas entschärfen
- Man kann nur relativ einfache Abläufe ohne Programmierung beweltigen. Ich habe mich immer wieder gezwungen gesehen, Function Nodes zu benutzen. Vermutlich werden JSONata und RegEX Füchse jetzt sagen, dass man doch alles machen kann, aber da sind meine Kompetenzen noch zu gering. Bis ich eine RegEx Formel entwickelt habe, ist das JavaScript schon dreimal geschrieben und getestet. In den ganzen Internet Beispielen werden auch immer Function Nodes verwendet. Meiner Meinung ist das aber nicht so ganz im Sinne des Erfinders.
- Auch bei allen Problemstellungen die Schleifen benötigen, wird es ziemlich kompliziert. Ich glaube, dass hier noch viel Grundlegendes fehlt, damit das effizient geht
- Ein konzeptionell sehr schwacher Punkt sind die Context Variablen ohne die man m.M. nicht auskommt. Hier besteht das Problem, das man keine Übersicht hat. Wenn man sich da mal vertippt, wird mal schnell neue Variable angelegt ohne dass man das wollte. Weil aber der Code versteckt und aufgeteilt in den Function nodes ist, kann man nicht global suchen, ersetzen und leicht den Fehler finden.
Mein Fazit. Ich werde bei JavaScript bleiben und nur ganz partiell Node Red einsetzen. Auf der anderen Seite finde ich die Entwicklung hoch interessant und man spürt eine unheimliche Dymanik der Szene, was für mich schon ein Grund ist, dran zu bleiben.
Mich würden Eure Einschatzung und Feedback interessieren.
-
-
Allerdings man hat viel zu wenig Möglichkeiten das Layout zu beeinflussen. DIese dynamische Anpassung des Layout in Abhängigkeit vom der Bildschirmgröße ist m.M. noch ziemlich unausgegohren oder ich habe das Konzept noch nicht ganz verstanden. `
Dies möchte ich so nicht stehen lassen. Um dies beurteilen zu können, müsstest Du dich noch näher mit den Möglichkeiten beschäftigen. Mit dem template-Node kannst Du dir über den HTML/CSS-Code deine Visualisierung weitgehend selber gestalten.Leider ist es wie mit allen Systemen, um alle Möglichkeiten ausschöpfen zu können muss man sehr sehr viel Zeit investieren. Daher muss jeder für sich entscheiden welchen Weg er gehen möchte. Ich habe vor ca. 1,5 Jahren mit Node-Red angefangen und ich werde dabei bleiben. In der Zwischenzeit hat sich das System deutlich verbessert und weiterentwickelt. So einige Dinge stören mich auch noch, aber damit kann und werde ich leben.
-
@Marty56: kann ich FAST alles unterschreiben, was du sagst
Für mich ist der Title „..pro..Contra..“ schon mal nicht zielführend.
Ich setze beides ein und bin froh dass das mit ioBroker so einfach geht.
NR nehme ich gern zum Prototyping her. Meist setze ich einzelne Flows dann in JS Scripts um oder ein.
Gerne bastel ich auch schnell mal eine Site in NR
Und ja in NR findet man auch schnell mal ein Node, wo man in JS schon ganz schön scripten muss.
Also die Frage entweder/oder stellt sich für mich nicht. Und das soll auch so bleiben [emoji3]
Gesendet von iPhone mit Tapatalk
-
@graf:
Ja, mit dem Angular Ansatz im template habe ich mich tatsächlich nur ganz kurz beschäftigt.
Er erlaubt nach meinem Verständnis aber nur eine Gestaltung in jeweils einem Node.
Klar, damit kann man wahrscheinlich alles machen, aber man verliert eben auch den Komfort durch die Abstraktion.
Was stört Dich noch an Node Red bzw. was sind Deine Highlights?