Node-Blue: Unterschiede zu Node-Red

Hallo,

ich stecke aktuell in der Umstellung von Node-Red zu Node-Blue. Dabei merke ich immer wieder, dass ich die Funktionsweise von Node-Blue nicht verstehe:

  • Node-Red arbeitet eventbasiert: Irgendetwas passiert und es wird eine Nachricht wird weitergereicht. Daher gibt es keine Logik-Nodes wie AND, da gleichzeitiges Eintreffen von Nachrichten an beiden Eingängen sehr unwahrscheinlich ist.

  • Bei Node-Blue existieren Logik-Nodes. Also nicht eventbasiert? Aber was dann?

node-blue ist genauso “flow”-basiert wie node-red, hat allerdings die Erweiterung mit den boolschen-nodes, was es in diesem Fall SPS-artig macht. Es ist in dem Fall “gemischt”.

node-blue nutzt den Editor von node-red, ist aber “unten drunter” komplett in C/C++ geschrieben und multithreading fähig - node-red’s V8 JavaScript-Engine (nodejs) ist nur single threaded. Statt Javascript kommt in den function-nodes PHP zum Einsatz. Node-red nodes sind nicht zu node-blue kompatibel.
Statt bei node-red die Daten von homegear per MQTT oder node-red-contrib-ccu zu bekommen, kannst du über den variable-node alle Events der Datenpunkte aus homegear direkt verarbeiten.

Danke für die Richtigstellung.

Aber was bedeutet es denn, dass Node-Blue Multithreading-Fähig ist? Es können gleichzeitig zwei Flows angetriggert werden, oder das Nodes im Hintergrund weiterlaufen können?

Außerdem bin ich noch über die risingedge-node gestolpert. Die sendet immer weiter, wenn es true ist und ignoriert false-Events. Ich hätte jedoch gedacht dass sie einmalig sendet, wenn sie true bekommt und erst wenn zwischenzeitig ein false kommt und dann wieder true wird ein true gesendet…
Mit welcher Node bekomme ich das hin?

Du kannst die “switch” Node nehmen.

image

Es werden die Systemresourcen besser genutzt. Node-red nutzt immer nur einen “Kern” deiner CPU, node-blue alle verfügbaren.
Wenn du etwas zeitbasiertes hast, kann node-red nur schwer mit einem Interval unterhalb 250ms arbeiten, node-blue hat damit keine Problem - selbst mit Intervallen von 1-2ms.

Das war ein Fehler. Dieser ist inzwischen behoben.

Vor allem können Ereignisse direkt verarbeitet werden und es kann nichts “hängen”. Wenn in Node-RED eine Node etwas länger braucht, wird ein anderes Ereignis so lange nicht verarbeitet. Das kann in Node-BLUE nicht passieren.