NEWS
Blockly vs. Node-Red vs. Javascript
-
@djmarc75 sagte in Blockly vs. Node-Red:
Deshalb werde ich mich bei fachlich fundierten Inhalten in Zukunft gerne zurückhalten um Threadersteller nicht unnötig zu verwirren oder zu verunsichern.
Keine Sorge ich lebe mit 3 Frauen unter einem Dach. Mich verwirrt so leicht nix und wenn, komm ich auch damit klar.
Aber genau deine Erfahrungen, was die Stärken und Schwächen des einen oder anderen sind, ist das, was ich hier suche.
-
@djmarc75 sagte in Blockly vs. Node-Red:
@mickym Danke für Deine Wertschätzung
aber ich bin weder beim einen noch beim anderen auch nur ansatzweise Profi.
Deshalb werde ich mich bei fachlich fundierten Inhalten in Zukunft gerne zurückhalten um Threadersteller nicht unnötig zu verwirren oder zu verunsichern.Na ich finds schade, weil es nicht darum geht Profi oder nicht zu sein. Ich habe in den Jahren auch immer mehr dazu gelernt und wenn man die Argumente oder Empfindungen des einzelnen gelten lässt, dann ergibt sich doch gerade ein Bild für Leute, die in der Entscheidungsfindung sind. Und wie gesagt, gerade weil Du beides nutzt - wäre es doch für einige interessant, welches Tool Du wann nutzt. Und auch wenn das historische Gründe hat, weil Du halt mal mit einem angefangen hast, ist das doch alles OK.
Das manche Leute wohl nicht mit meiner Liste oder Einschätzung nicht übereinstimmen, dies aber nicht artikulieren können, siehst ja an der negativen Bewertung meines Beitrags.
EDIT: Ich finde auch so einen Austausch und eine Diskussion wie mit @Homoran hier doch ganz interessant und wie gesagt, anhand solcher Diskussionen können sich doch Leser selbst ein Bild machen und die Argumente des einen und des anderen selbst abwägen
@renegade-0 sagte in Blockly vs. Node-Red:
@mickym supi, genau das suche ich. Diese würde ich dann gerne zusammenfassen und oben in den Thread stellen. Dann hat man als Neuling einfach die Chance sich vorab ein wenig zu informieren, auf was man sich fokussieren will.
Du kannst das gerne kopieren und verwenden wie Du willst. Du siehst ja, dass solche Einschätzung, wie gerade erwähnt aber wohl bei manchen auf Unverständnis stößt und sie animiert meinen Beitrag negativ zu bewerten.
-
@mickym
ich möchte hier einen sachlichen und konstruktiven Diskurs. Negative Kritik oder gar persönliche Angriffe verbitte ich mir. (Sollte eigentlich selbstverständlich sein)
Klar kann man anderer Meinung sein und das ist ja auch gut so. Nur dann bitte argumentativ, sonst wird es ebenfalls ignoriert.Am We werde ich dann das, was bisher als pro bzw. kontra jeweils aufgelaufen ist erst einmal zusammenfassen. Kann ja dann noch ergänzt werden. Allerdings sollte es auch nicht zu Detailspezifisch sein, sondern eher ein grober Überblick.
-
Sollte man den thread Titel nicht erweitern um JS:
Blockly vs. Node-Red vs. Javascript
Ich bin da eher auf JS unterwegs. Bedingt von früher (C64 Zeiten und basic (hieß das glaub ich)).
Das andere ist mir zu bunt !
Ist jetzt keine fundierte pro/contra Aufstellung.
Aber ich versuche halt alles mit JS hin zu bekommen. -
@bahnuhr sagte in Blockly vs. Node-Red:
Sollte man den thread Titel
nichterweitern um JSNOCH wäre korrekt !
Aber ich halte mich jetzt wieder raus -
@djmarc75 sagte in Blockly vs. Node-Red:
NOCH wäre korrekt !
du bist der beste.
@djmarc75 sagte in Blockly vs. Node-Red:
Aber ich halte mich jetzt wieder raus
Ne, mach das nicht.
Bin doch jetzt da. -
@bahnuhr sagte in Blockly vs. Node-Red:
Sollte man den thread Titel nicht erweitern um JS:
Guter Einwand.
p.s.: Wie geht das?^^
-
-
@bahnuhr
danke -
Ich hab nochmal ein paar Beiträge oder Argumente aus Diskussionen, an die ich mich noch so dunkel erinneren kann, zusammengetragen.
Hier sind ja dann auch oft die Folgebeiträge interessant, die man dann ggf. in eine Gesamtbetrachtung fließen lassen kann:
https://forum.iobroker.net/post/610657
https://forum.iobroker.net/post/714741
https://forum.iobroker.net/post/611966 -
@bahnuhr sagte in Blockly vs. Node-Red vs. Javascript:
Sollte man den thread Titel nicht erweitern um JS:
nicht unbedingt, wenn es hier um verschiedene grafische Programmieroberflächen im Vergleich geht
-
In diesem Beitrag (https://forum.iobroker.net/post/611966) hab ich ja schon mal angeregt, wenn man die gleiche Frage- oder Problemstellung einfach mal mit beiden oder von mir aus auch mit 3 Tools implementiert, dann kann man sich vielleicht auch als Anwender ein Bild zu machen. War ja mal ein Vorschlag. Vielleicht kann man das ja mal anhand von oft wiederkehrenden Problemstellungen mal durchexerzieren. (Beispiel von einfachen Steuerungen, in Abhängigkeit von Bedingungen usw.)-
-
@mickym sagte in Blockly vs. Node-Red vs. Javascript:
In diesem Beitrag (https://forum.iobroker.net/post/611966) hab ich ja schon mal angeregt, wenn man die gleiche Frage- oder Problemstellung einfach mal mit beiden oder von mir aus auch mit 3 Tools implementiert, dann kann man sich vielleicht auch als Anwender ein Bild zu machen. War ja mal ein Vorschlag. Vielleicht kann man das ja mal anhand von oft wiederkehrenden Problemstellungen mal durchexerzieren. (Beispiel von einfachen Steuerungen, in Abhängigkeit von Bedingungen usw.)-
Finde ich gut.
Sowas wie Datenpunkt a+b holen und wenn die gleich sind, dann schalte Datenpunkt c.
-
weiß nicht ob das geht mit nodered?
braucht man früher oder später beim fortgeschrittenen programmieren in iob
- selektoren über datenpunkte und für aufzählungen (enums/functions)
- kann man in den script blöcken (oder functions in nodered) auf die objekt-daten der datenpunkte zugeifen (common.name)
- kann man auf ein array von datenpunkten triggern
als anfänger fand ich das system mit payload eher unverständlich - lag daran , dass das json-verständnis für mich etwas dauerte - ich fand mich mit al den beispielen im forum sehr schnell zurecht mit blockly - node red nutzte ich nur für komplexe stringverarbeitungen, da ich javascript nicht konnte - nachdem ich javascript etwas beherrschte, verschwand nodered bei mir fast vollständig
neagtiv bei blockly - json erstellung
-
@renegade-0 sagte in Blockly vs. Node-Red vs. Javascript:
Sowas wie Datenpunkt a+b holen und wenn die gleich sind, dann schalte Datenpunkt c.
Genau - dann muss man halt noch Rahmenbedingungen - trigger usw. festlegen. Sollten halt möglichst viele mitmachen.
-
Hi,
ein Punkt den ich über node-red gute gelöst finde, ist die Interaktion mit anderen Umgebungen,
z.B. nutze ich die alexa Integration und webhooks für IFTTT. Da gibt es fertige Knoten. -
@liv-in-sky sagte in Blockly vs. Node-Red vs. Javascript:
weiß nicht ob das geht mit nodered?
braucht man früher oder später beim fortgeschrittenen programmieren in iob
- selektoren über datenpunkte und für aufzählungen (enums/functions)
- kann man in den script blöcken (oder functions in nodered) auf die objekt-daten der datenpunkte zugeifen (common.name)
- kann man auf ein array von datenpunkten triggern
als anfänger fand ich das system mit payload eher unverständlich - lag daran , dass das json-verständnis für mich etwas dauerte - ich fand mich mit al den beispielen im forum sehr schnell zurecht mit blockly - node red nutzte ich nur für komplexe stringverarbeitungen, da ich javascript nicht konnte - nachdem ich javascript etwas beherrschte, verschwand nodered bei mir fast vollständig
neagtiv bei blockly - json erstellung
Nun da sprichst Du halt genau die Schwächen an, das liegt aber nicht an NodeRed selbst, sondern dass hier die Integration der iobroker Javascript-Bibliothek halt nicht vollständig abgebildet ist.
Habe ich versucht damit zu beschreiben:
- wird leider nicht so vollständig wie bei Blockly unterstützt, da iobroker JS Bibliotheken nicht direkt verwendet werden können (s. SendTo, Räume, Funktionen)
Also im Prinzip beschreibst Du hier richtig die Limitierungen des NodeRed Adapters.
selektoren über datenpunkte und für aufzählungen (enums/functions)
Also hier klares NEIN.
Die enum Datenpunkte scheinen sogar bewusst für NodeRed gesperrt zu sein. Für einzelne Datenpunkte kann man aber auslesen, welchen enums die zugehören. Dabei ist die getObject Node eher überflüssig, die listObjects Node liefert mehr.
Da bekommst dann wenigstens zu einem Datenpunkt mit, ob dieser einer Funktion oder Raum zugeordnet ist:- kann man in den script blöcken (oder functions in nodered) auf die objekt-daten der datenpunkte zugeifen (common.name)
Kann wie gesagt mittels der list Node ausgelesen werden.(s.oben)
kann man auf ein array von datenpunkten triggern
Nein. Man kann zumindest Wildcards nutzen und kann damit auch auf mehrere Datenpunkte mittels Wildcards triggern. Aber Arrays gehen nicht.
Mit den Node Red Mqtt Nodes - die auch MQTT-V5 können (was der iobroker Adapter noch nicht kann), kannst Du aber verschiedene Topics subscriben und die werden intern auch als Array geführt und triggern. Auch hier ist alles ein Problem des NodeRed Adapters.
Wie gesagt, Du hast die Schwachstellen oder die Limitierung genau identifiziert.
Trotzdem kann man über Datenpunkte ja eine Verbindung zwischen NodeRed und Javascript schaffen. Ich hab sowas ja mal für die SendTo Funktionalität implementiert (die es im NodeRed auch nicht gibt). Sind alles offene Issues im NR Adapter.
https://forum.iobroker.net/topic/57210/nodered-sendto-proxy-mit-js?_=1670961730662
Solche ProxyScipts kann man natürlich basteln und hab ich ja auch mit JS gemacht, um die fehlende Funktionalität über Umwege auch für NodeRed verfügbar zu machen.
Am im Prinzip ist die Integration in den iob Broker halt so gut oder schlecht, wie der Adapter es erlaubt.
-
@renegade-0 also, ich habe hier mal die Diskussion überflogen.
Ich nutze Blockly und JavaScript.
Blockly für die "schnelle Nummer", die kleinen Aufgaben - und für "Prototypen".
Wenn ich was komplexeres mache schnappe ich mir gerne einzelne Probleme davon und baue die in einem separaten Skript zu etwas funktionierenden. Das sind meine "Prototypen" - und die mache ich gerne mit Blockly.Denn ein Blockly kann man dann einfach in JavaScript umwandeln bzw. sich das was man braucht aus der JavaScript Ansicht heraus kopieren / abschauen.
Wenn es komplexer wird ist es halt JavaScript. Viele Dinge die in Blockly dann komplex wären sind in JavaScript ganz einfach. Zum Beispiel Suchen & Ersetzen von Text. Aber man kann in Blockly auch JavaScript-Code nutzen, ergo auch das einfachere Suchen und Ersetzen.
Zum Thema NodeJS Bibliotheken nutzen. Die man ja in den JavaScript Adapter eintragen kann und dann installiert werden und genutzt werden können. Oder in NodeRed via function Nodes on the fly verwendet werden können
Da fang mal gar nicht erst mit an mit dieser Abhängigkeitshölle. Da baust du dir ein Skript was eine bestimmte Bibliothek braucht ... die irgendein anderer Pflegt ... oder auch nicht ... die dann bei jedem Update mit gepflegt werden muss oder Probleme machen kann.
Ich mag meine Skripte "Allein bzw. auf dem Grundsystem lauffähig" - da kann ich das einfach auf ein anderes System kopieren und das Ding läuft. Wenn ich den mal etwas aus so einer Bibliothek brauche mache ich mir die Mühe den Quellcode dazu anzusehen. Und oft ist es erschreckend wenig was da drin steht bzw. was man eigentlich aus der Bibliothek braucht, die paar Zeilen kopiere ich in meinen Code mit einem Hinweis auf die Herkunft - und das Skript wird immer so selbstständig funktionieren.NodeRed hab ich mir mal angesehen. ist toll. Brauchte ich aber nicht weil ich halt schon mit JavaScript alles hinbekomme und wenn ich Faul bin reicht Blockly.
-
@liv-in-sky sagte in Blockly vs. Node-Red vs. Javascript:
braucht man früher oder später beim fortgeschrittenen programmieren in iob
jetzt sind wir aber schon fast beim Thread zu den 3 (4) Varianten des js-Adapters!
Die Zielgruppe fpr Blockly ist nicht unbedingt der fortschrittliche Programmierer!
Das sollte man beim Vergleich nicht außer acht lassen. -
@homoran sagte in Blockly vs. Node-Red vs. Javascript:
Die Zielgruppe fpr Blockly ist nicht unbedingt der fortschrittliche Programmierer!
denke schon - nach einen jahr ist man das - und was dann - bei den momentanen einschränkungen von nodered, bedeutet das umlernen !
ich sehe es so - meine persönliche meinung !!!!
gäbe es kein nodered in iobroker, würde ich das nicht merken - es gäbe keine einschränkungen für mich
ohne blockly wäre ich wahrscheinlich nicht hier, weil ich das einfache konzept von blockly als anfänger gut fand - wahrscheinlich hätte ich nodered angeschaut und mein smarthome nur damit realisiert - es würde dann aber mir einiges fehlenmit blockly einfach einsteigen - wenn's besser wird, etwas javascript abschreiben und lernen und man hat alles, was man braucht. will man dann noch in der vis "rum-coden" hilft einem das javascript-wissen - mit nodered kann man keine solche vis wie bei iobroker aufbauen
aus anfängern werden irgendwann fortgeschrittene - über blockly geht das relativ schnell
mit blockly lernt man programmieren - miit nodered lernt man prozessverarbeitung