NodeRed und DIO

Rund um die Software von Revolution Pi
FedericoDC
Posts: 7
Joined: 24 Aug 2017, 08:37
Answers: 0

Re: NodeRed und DIO

Post by FedericoDC »

ich verstehe was du sagst, ich bin der gleiche Meinung. Mein Post war ein Übersetzung von was ich in Python gemacht hatte (mit Hilfe von deine Demo), esrte Beispiel.
Ich hatte auch ein "Drag & Drop" gesucht und war auch traurig, dass ich hatte es nicht gefunden ;)
So, für die Leute das es suchen, weil sie warten, es ist nicht so kompliziert direct zu machen.

Heute Programmierer lieben die Classes, Namen und Objekte, ich habe Programmierung auf "Basic" gelernt in eine "nicht kompatibel" 16Kb machine, alle Variabeln waren 1 oder 2 Buschtaben. Komplizierte Objekte waren immer direkt in Memory geschrieben mit die Functionen "Peek" und "Poke". Man musste immer denken an die Memory Map und Addresse, sondern die ganze Machine halten würde mit ein falsch Poke.
weberg
Posts: 1
Joined: 15 May 2018, 15:43
Answers: 0

Re: NodeRed und DIO

Post by weberg »

Hallo,
für eine einen use-case wollte ich auch über node-red auf DIOs zugreifen und habe das erst mit der exec-node gelöst, wie Boris schon vorher
gezeigt hat (Aufruf von piTest). Da das aber leider sehr viel Zeit braucht, (dabei wird ein eigener Prozess erstellt etc...) wollte ich es in einen Funktionsaufruf umwurschteln...
Dazu habe ich das hier gefunden : https://github.com/tmuellerWieland/revpi
Hier wird mit dem node.js Modul ffi Fremdfunktionen aus shared c-Libraries (piControl.h) benutzt.
Ich habe diese Idee übernommen und gleich den Quellcode von piTest.c (reduziert auf setBit und getBit) zu einer
Library übersetzt und greife auf eben diese Funktionen dann über node.js zu.

Das ganze habe ich in sehr spartanischer Form dann auch mal hochgeladen, kann bei node-red unter
"node-red-contrib-revolution-pi-dio" gefunden werden.

https://flows.nodered.org/node/node-red ... ion-pi-dio

Es stellt eine "revpi-read"und eine "revpi-write" node zur Verfügung, mit denen unter Angabe von Offset und Bit auf die DIOs
zugegriffen werden kann.

Falls es an meinem Vorgehen es irgendwelche rechtlichen/lizenztechnischen Probleme gibt, bitte ich darum mir das mittzuteilen.

Ansonsten stehe ich bei Fragen gerne zur Verfügung.

Grüße
Georg
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41
Answers: 1

Re: NodeRed und DIO

Post by volker »

Hallo Georg,
vielen Dank für diesen Beitrag zur Community! Aus Sicht von KUNBUS gibt es da keine lizenzrechtlichen Probleme.
Nur zur Info: Wir arbeiten aktuell an einer umfassenderen allgemeinen Lösung für einen RevPi Node, der sich möglichst optimal konfigurieren lassen soll. Aber das kann noch ein wenig dauern...
Unser RevPi Motto: Don't just claim it - make it!
matt.s
Posts: 71
Joined: 06 Sep 2017, 11:46
Answers: 0

Re: NodeRed und DIO

Post by matt.s »

Hallo Georg,

ich wollte gerade einmal deines nodes ausprobieren, bekomme sie aber leider nicht installiert. Das Thema node-red ist ganz neu für mich, vielleicht sieht jemand mit mehr Erfahrung direkt wo es hängt?

Vorgehen:
1) SSH-Verbindung zum RevPi aufbauen
2) in der Konsole den Befehl "npm install node-red-contrib-revolution-pi-dio" eingeben erzeugt folgenden Output:

Code: Select all

 npm WARN engine app-root-path@2.1.0: wanted: {"node":">= 4.0.0"} (current: {"node":"0.10.29","npm":"1.4.21"})
-
> ref@1.3.5 install /home/pi/node_modules/node-red-contrib-revolution-pi-dio/node_modules/ffi/node_modules/ref
> node-gyp rebuild

make: Entering directory '/home/pi/node_modules/node-red-contrib-revolution-pi-dio/node_modules/ffi/node_modules/ref/build'
  CXX(target) Release/obj.target/binding/src/binding.o
In file included from ../src/binding.cc:7:0:
../../nan/nan.h:331:47: error: ‘REPLACE_INVALID_UTF8’ is not a member of ‘v8::String’
   static const unsigned kReplaceInvalidUtf8 = v8::String::REPLACE_INVALID_UTF8;
                                               ^
../src/binding.cc: In function ‘void init(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’:
../src/binding.cc:643:8: warning: ‘Nan::Maybe<bool> Nan::ForceSet(v8::Handle<v8::Object>, v8::Handle<v8::Value>, v8::Handle<v8::Value>, v8::PropertyAttribute)’ is deprecated (declared at ../../nan/nan_maybe_pre_43_inl.h:162) [-Wdeprecated-declarations]
   Nan::ForceSet(target, Nan::New<v8::String>("endianness").ToLocalChecked(), Nan::New<v8::String>(CheckEndianness()).ToLocalChecked(), static_cast<PropertyAttribute>(ReadOnly|DontDelete));
        ^
../src/binding.cc:643:187: warning: ‘Nan::Maybe<bool> Nan::ForceSet(v8::Handle<v8::Object>, v8::Handle<v8::Value>, v8::Handle<v8::Value>, v8::PropertyAttribute)’ is deprecated (declared at ../../nan/nan_maybe_pre_43_inl.h:162) [-Wdeprecated-declarations]
   Nan::ForceSet(target, Nan::New<v8::String>("endianness").ToLocalChecked(), Nan::New<v8::String>(CheckEndianness()).ToLocalChecked(), static_cast<PropertyAttribute>(ReadOnly|DontDelete));
                                                                                                                                                                                           ^
../src/binding.cc:644:8: warning: ‘Nan::Maybe<bool> Nan::ForceSet(v8::Handle<v8::Object>, v8::Handle<v8::Value>, v8::Handle<v8::Value>, v8::PropertyAttribute)’ is deprecated (declared at ../../nan/nan_maybe_pre_43_inl.h:162) [-Wdeprecated-declarations]
   Nan::ForceSet(target, Nan::New<v8::String>("NULL").ToLocalChecked(), WrapNullPointer(), static_cast<PropertyAttribute>(ReadOnly|DontDelete));
        ^
../src/binding.cc:644:142: warning: ‘Nan::Maybe<bool> Nan::ForceSet(v8::Handle<v8::Object>, v8::Handle<v8::Value>, v8::Handle<v8::Value>, v8::PropertyAttribute)’ is deprecated (declared at ../../nan/nan_maybe_pre_43_inl.h:162) [-Wdeprecated-declarations]
   Nan::ForceSet(target, Nan::New<v8::String>("NULL").ToLocalChecked(), WrapNullPointer(), static_cast<PropertyAttribute>(ReadOnly|DontDelete));
                                                                                                                                              ^
binding.target.mk:82: recipe for target 'Release/obj.target/binding/src/binding.o' failed
make: *** [Release/obj.target/binding/src/binding.o] Error 1
make: Leaving directory '/home/pi/node_modules/node-red-contrib-revolution-pi-dio/node_modules/ffi/node_modules/ref/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:809:12)
gyp ERR! System Linux 4.4.50-rt66-v7+
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /home/pi/node_modules/node-red-contrib-revolution-pi-dio/node_modules/ffi/node_modules/ref
gyp ERR! node -v v0.10.29
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! ref@1.3.5 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ref@1.3.5 install script.
npm ERR! This is most likely a problem with the ref package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls ref
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 4.4.50-rt66-v7+
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "node-red-contrib-revolution-pi-dio"
npm ERR! cwd /home/pi
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/pi/npm-debug.log
npm ERR! not ok code 0
Kann es sein, dass die installierte Version von "node" zu alt ist? Falls ja, wie bekomme ich eine aktuellere?

Code: Select all

sudo apt install nodejs
sagt mir, ich hätte schon die neueste Version installiert.
Schönen Gruß,
matt.s
SchreiberJ
Posts: 1
Joined: 12 Oct 2018, 17:02
Answers: 0

Re: NodeRed und DIO

Post by SchreiberJ »

Hallo,

gibt es denn schon eine Bibliothek für den RevPi in Node-Red?

LG Josef
Eduard
KUNBUS
Posts: 209
Joined: 18 Jun 2018, 16:16
Answers: 0

Re: NodeRed und DIO

Post by Eduard »

Hallo Josef,

von KUNBUS gibt es zurzeit noch keine fertige Node-Red Bibliothek für den RevPi.
Sobald die Bibliothek verfügbar ist werden wir euch informieren.

Gruß
Eduard
User avatar
RevPiModIO
KUNBUS
Posts: 322
Joined: 20 Jan 2017, 08:44
Answers: 0
Contact:

Re: NodeRed und DIO

Post by RevPiModIO »

Moin!

Mit RevPiPyLoad kann man alle Werte vom RevPi per MQTT übertragen und mit den MQTT Knoten in Node-Red nutzen. Hatten wir auf dem RevPiDay 2018 vorgestellt.
Dabei kann man zyklisch alle IO-Daten übertragen, eventbasierend (also bei Änderung) und sogar Ausgänge setzen, wenn man eine MQTT Nachricht aus NodeRed published.

Noch haben wir kein genaues "HowTo", aber die Einrichtung von RevPiPyLoad mit MQTT ist generell hier beschrieben https://revpimodio.org/iot-mqtt-revpi/
Wir werden aber noch einen Blogeintrag dazu schreiben.

Man müsste lediglich auf dem RevPi selber Mosquitto als Broker installieren und schon kann man mit NodeRed arbeiten.

Code: Select all

sudo apt-get install mosquitto

Und dann einfach als Broker-IP die 127.0.0.1 verwenden.
The attachment IMG_20180927_181358.jpg is no longer available
IMG_20180927_181358.jpg
IMG_20180927_181358.jpg (43.62 KiB) Viewed 8234 times
Gruß, Sven
Attachments
Screenshot_20180903_144517.png
Screenshot_20180903_144517.png (44.8 KiB) Viewed 8234 times
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
User avatar
RevPiModIO
KUNBUS
Posts: 322
Joined: 20 Jan 2017, 08:44
Answers: 0
Contact:

Re: NodeRed und DIO

Post by RevPiModIO »

Und hier sind nun auch alle Informationen, wie NodeRED mit MQTT verwendet werden kann.

Schritt für Schritt: https://revpimodio.org/nodered-mqtt/

Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
User avatar
ocean
Posts: 3
Joined: 08 Mar 2019, 10:19
Answers: 0

Re: NodeRed und DIO

Post by ocean »

Hallo,
für ein anderes Produkt habe ich sehr nützliche Nodes entwickelt.
Es sind Nodes, mit denen man eine komplette Steuerung mit Node-Red verwirklichen kann.
Die IEC 61131-3 Norm wurde zum grössten Teil umgesetz.
Die Nodes sind für User gedacht, die sich nicht in Programmierung auskennen.
Da ich RevPi mit Interesse verfolge, will ich diese Nodes auch für RevPi anpassen.
Ocean
Last edited by ocean on 02 Apr 2019, 22:52, edited 1 time in total.
User avatar
dirk
KUNBUS
Posts: 1925
Joined: 15 Dec 2016, 13:19
Answers: 4

Re: NodeRed und DIO

Post by dirk »

Hi, ich denke da läufst Du in der Community aber offene Türen ein. Warum machst Du nicht ein GitHub Repository und postest einen Link z.B. hier?
Post Reply