NodeRed und DIO
-
- Posts: 7
- Joined: 24 Aug 2017, 08:37
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.
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.
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
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
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...
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!
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:
Kann es sein, dass die installierte Version von "node" zu alt ist? Falls ja, wie bekomme ich eine aktuellere? sagt mir, ich hätte schon die neueste Version installiert.
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
Code: Select all
sudo apt install nodejs
Schönen Gruß,
matt.s
matt.s
-
- Posts: 1
- Joined: 12 Oct 2018, 17:02
Hallo,
gibt es denn schon eine Bibliothek für den RevPi in Node-Red?
LG Josef
gibt es denn schon eine Bibliothek für den RevPi in Node-Red?
LG Josef
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
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
- RevPiModIO
- KUNBUS
- Posts: 335
- Joined: 20 Jan 2017, 08:44
- Contact:
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.
Und dann einfach als Broker-IP die 127.0.0.1 verwenden.
Gruß, Sven
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.
Gruß, Sven
- Attachments
-
- Screenshot_20180903_144517.png (44.8 KiB) Viewed 14925 times
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
- RevPiModIO
- KUNBUS
- Posts: 335
- Joined: 20 Jan 2017, 08:44
- Contact:
Und hier sind nun auch alle Informationen, wie NodeRED mit MQTT verwendet werden kann.
Schritt für Schritt: https://revpimodio.org/nodered-mqtt/
Sven
Schritt für Schritt: https://revpimodio.org/nodered-mqtt/
Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
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
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.
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?