Open m50434 opened 5 years ago
Stehen mit RedMatic 4.1.0 als redmatic-pkg zur Verfügung. Installation siehe https://github.com/rdmtc/RedMatic/wiki/Node-Installation#Installation-via-RedMatic-Package-Manager Bitte gib Bescheid ob es funktioniert.
This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.
Hi, sorry hatte leider nicht eher Zeit etwas auszuprobieren: Ich habe das node-red-contrib-gpio über das Package installiert. Wenn ich nun einen Node aufmache, RaspberryPI als Board auswähle und dann einen (beliebigen) PIN bzw. GPIO angebe, dann bekomme ich die Fehlermeldung "Error: Cannot find module 'raspi-io'". Fehlt da eventuell noch etwas?
Moin,
Asus Tinkerboard wird nicht Supported oder?
Ich würde da mal ganz blauäugig versuchen ob es trotzdem geht, hege die Hoffnung dass der Zugriff auf die GPIOs genauso wie beim Raspberry erfolgt.
@m50434 bitte gib Bescheid ob es mit RedMatic >= 4.4.1 funktioniert.
Hi, leider nein, die Fehlermeldung "Error: Cannot find module 'raspi-io'" bleibt leider bestehen. Habe es sowohl mit einem GPIO-Input als auch GPIO-Output probiert. In beiden Fällen kommt die Fehlermeldung. Habe auch das GPIO-Package nochmal über den Paket-Manager deinstalliert und wieder deinstalliert. Leider kein Erfolg.
hmpf ;) Ok, gib mir etwas Zeit, ich check das asap.
@m50434 kurzer Zwischenstand. Ich hab jetzt nach einigem manuellen Gefrickel node-red-contrib-gpio zum laufen gebracht. Bin aber hin- und hergerissen, das Projekt scheint nicht wirklich aktiv maintained zu sein (inkompatible mit raspi-io v10.x, Pull-Request bleibt unbeantwortet der Unterstützung für Eingänge mit Pull-Up mitbringt - was für die Nutzung der Taste des RPI-RF-MOD z.B. notwendig wäre). Bin am überlegen wie ich damit umgehen soll, sehe im Moment folgende Optionen:
Alles 3 nicht wirklich gut, am ehesten praktikabel wäre noch der Fork von node-red-contrib-gpio. Ich denke ich muss weitere Optionen suchen, gib mir etwas Zeit. Was für Usecases schweben Dir denn vor? Reicht Dir einfaches Input/Ouput? Oder brauchst Du mehr (PWM Out, Analog In, I2C, ...)?
Alles klar, dann weiß ich erstmal Bescheid. Vielen vielen Dank für deine ständigen Bemühungen!!!!
So, hab mich für Option 1 entschieden, hab node-red-contrib-gpio geforkt: https://github.com/rdmtc/node-red-contrib-johnny-five Steckt in RedMatic 4.5.0 drin, bzw. kann über das RedMatic Package Management installiert werden. Achtung: das fängt noch nicht wirklich Fehler ab. Konfiguriert man z.B. einen nicht vorhandenen GPIO crasht Node-RED direkt weg - zum Glück gibt es den Safe-Mode ;-) Hier ein einfaches Beispiel: Events von der Taste des RPI-RF-MOD:
[{"id":"5151b075.60c0e","type":"gpio in","z":"df4b46f.67093b8","name":"RPI-RF-MOD Taste","state":"PULLUP","samplingInterval":"300","pin":"GPIO12","board":"99a20995.e24068","x":220,"y":340,"wires":[["6abcf49f.691a1c"]]},{"id":"6abcf49f.691a1c","type":"debug","z":"df4b46f.67093b8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":430,"y":340,"wires":[]},{"id":"99a20995.e24068","type":"nodebot","z":"","name":"Raspberry Pi","username":"","password":"","boardType":"raspi-io","serialportName":"","connectionType":"local","mqttServer":"","pubTopic":"","subTopic":"","tcpHost":"","tcpPort":"","sparkId":"","sparkToken":"","beanId":"","impId":"","uuid":"","token":"","sendUuid":""}]
@m50434 Bitte gib Bescheid ob es bei Dir soweit funktioniert.
Danke für deine Umsetzungen. Also entweder bin ich zu blöd, oder... Ich habe jetzt das "node-red-contrib-gpio" über das Package-Managment gestartet und verschiedene Konfigurationen (viele gibts ja eh nicht) ausprobiert und auch dein Beispiel einmal importiert. Ich bekomme nach wie vor den Connection-Error und die Fehlermeldung "Error: Cannot find module 'raspi-io'" :-(
Bei mir das selbe.
Gruß Matten Matten
Ich hab den Fork umbenannt, der heisst nicht mehr node-red-contrib-gpio
sondern node-red-contrib-johnny-five
und muss im RedMatic UI unter "Pakete" installiert werden.
Oh, jetzt fällt mir noch was ein was ich nicht bedacht hatte... Ihr müsstet bevor ihr johnny-five installiert manuell node-red-contrib-gpio deinstallieren. Einfach das Verzeichnis /usr/local/addons/redmatic/lib/node_modules/node-red-contrib-gpio
löschen und dann Node-RED neustarten.
Auch das hat bei mir leider nicht geholfen...
node-red-contrib-gpio gelöscht, Node-RED neugestartet, node-red-contrib-johnny-five erfolgreich installiert, Node-RED nochmal neugestartet?
Und dann immer noch der gleiche Fehler (Error: Cannot find module 'raspi-io'
) oder jetzt ein anderes Fehlerbild?
Oh, ich glaub ich hab den Fehler gefunden. Da fehlen ein Haufen Dateien in der redmatic-pkg-node-red-contrib-johnny-five.tar.gz, hab das nicht gemerkt bei meinen Tests weil das nur auftrat wenn über Travis ein automatischer Build lief, bei meinen lokalen Builds mit denen ich getestet hab sind alle Dateien drin... Hoffe das das mit RedMatic 4.6.0 dann erledigt ist, schwere Geburt diese Geschichte... 😅
V 4.6.0
Also:
node-red-contrib-gpio
Modul via FileZilla gelöschtnode-red-contrib-johnny-five
Modul via Redmatic Interface gelöschtnode-red-contrib-johnny-five
Modul via Redmatic Interface unter Pakete installiert
verbunden.
Jetzt muss ich mir nur noch was bauen das ich die EIN/AUS-gänge mal testen kann...
Vielen Dank hobbyquaker das du allem so energisch nachkommst! Das ist ja auch alles immer Zeitaufwändig.
Gruß Matten Matten
Vielen Dank auch von mir. Hier läuft es jetzt auch. Werde auch mal versuchen, in den nächsten Tagen etwas zu basteln.
Hatte schon Zeit (bzw. konnte nicht abwarten :-P ):
Also, einen GPIO, der ein- und ausgeschaltet werden kann, habe ich auch (wie @Matten-Matten) problemlos hinbekommen.
Für einen GPIO als Eingang war es doch ein bisschen schwieriger. Der GPIO-Knoten funktioniert zwar, allerdings funktioniert hier offensichtlich die Pullup-Einstellung nicht. Dies hatte @hobbyquaker ja schon angemerkt:
(Pull-Request bleibt unbeantwortet der Unterstützung für Eingänge mit Pull-Up mitbringt).
Als Debug-Ausgabe erhält man das ständige (typische) hin- und herspringen von High und Low, sobald irgendetwas an dem entsprechenden Pin hängt.
Mit dem Johnny5-Knoten lässt sicht aber der interne Pullup/Pulldown-Widerstand des Raspberrys erfolgreich aktivieren. Konnte das hier erfolgreich testen! (sodass ich nun mein Ursprungsszenario, weshalb ich @hobbyquaker überhaupt um die Einbindung von node-red-contrib-gpio gebeten hatte, umsetzen kann: der Raspberry bekommt das Betätigen meiner Haustürklingel mit und tut dann etwas bzw. gibt das an Raspberrymatic weiter usw.)
Also nochmal 1000 Dank an @hobbyquaker für die Mühen !!!!
Hier nochmal oben der Eingangsknoten mit Pullup und unten das Beispiel zum Schalten eines GPIOs:
Hier der Code für den Testjohnny-Knoten:
var button = new five.Button({
pin: "GPIO26",
isPullup: true
});
button.on("press", function() {
node.send({payload: "GND connected to GPIO26"});
});
Den Pull Request hab ich in mein Fork gemerged, mit dem gpio in
node kannst dann einfach in der Konfig den Pull-Up aktivieren:
Den Pull Request hab ich in mein Fork gemerged, mit dem
gpio in
node kannst dann einfach in der Konfig den Pull-Up aktivieren:
Das hatte ich gesehen, war mir aber nicht mehr sicher, ob der pullup-Eintrag von dir kam oder schon vor dem fork da war. Jedenfalls funktioniert bei mir die Pullup-Einstellung nicht: Sobald irgendwas an dem Pin hängt, flattert die Ausgabe zw. 0 und 1.
Daher hatte ich es dann (erfolgreich) mit dem Johnny5-Knoten porbiert.
Hmm... ok, muss ich mal checken. Bei mir funktioniert es, hab allerdings bisher nur die Taste der RPI-RF-MOD Platine getestet, kann sein dass die noch n'Pull-Up Widerstand mitbringt, hab ich noch nicht geprüft.
Muss nochmal einhaken: Habe festgestellt, dass bei Benutzung der GPIO-Nodes mein Funkmodul (MOD-RPI-PCB) des Raspberrys nicht mehr funktioniert. Äußert sich dadurch, dass sämtliche Aktoren nicht mehr mit der Rasberrymatic kommunizieren können. Ein Neustart hilft leider nicht; habe hier ewig rumprobiert. Letztlich half dann nur das Einspielen eines Backups. Habe das ganze gerade nochmals ausprobiert: Das Installieren des johnny5-packages macht noch keine Probleme. Sobald ich aber einen GPIO-Node in Node-Red implementiere, verabschiedet sich mein Funkmodul (Habe es auch mit verschiedenen GPIOs ausprobiert (12 und 26)). Irgendwie scheint dabei ja dann auf die PINs zugegriffen werden, auf denen das Funkmodul sitzt. Anders kann ich mir das nicht erklären. Ich nehme aber fast an, dass du nicht diese Erfahrung gemacht hast, das wäre dir sicherlich aufgefallen. Vielleicht liegt es an deinem anderen Funkmodul?! @Matten-Matten welches Funkmodul hast du denn im Einsatz und ist dir Ähnliches aufgefallen?!
Ich habe das MOD-RPI-PCB auch aber diese gpio Geschichte teste ich auf meinem testpi. Da ist zwar ein Funkmodul drauf aber nix angelernt
Hmm ok, habe es heute nochmal probiert. Gleicher Fehler. Es reicht, dass ich den GPIO-Knoten implementiere... Offensichtlich bügelt er dann die Einstellungen der PINs über, auf denen das Funkmodul sitzt.
Kann bestätigen dass es zu Problemen kommt :-( Hab an meinem Testsystem BidCos-RF, HmIP und HmIPW Geräte dran. Seltsamerweise funktioniert der Funk noch einwandfrei - aber HmIP-Wired steigt aus, die Aktoren melden UNREACH, DRAP konfigurieren geht dann auch nicht mehr. Vorher/Nachher Vergleich:
# ls /sys/class/gpio/
export gpio19 gpiochip0 gpiochip100 gpiochip504 unexport
# ls /sys/class/gpio/
export gpio12 gpio19 gpiochip0 gpiochip100 gpiochip504 unexport
Er hat wie gewünscht nur den gpio12 konfiguriert an dem diese Taste angeschlossen ist (die auch sauber Events liefert).
Vermutung/Spekulation: Johnny-Five/Raspi-io unterstützt ja auch uart, i2c und spi. Vermutlich wird der uart von raspi-io unnötigerweise umkonfiguriert/belegt oder so. Ich werd mal nachforschen bei Gelegenheit
Joa, ich denk das wirds sein.... node-red-contrib-johnny-five instanziert raspi-io mit defaults:https://github.com/rdmtc/node-red-contrib-johnny-five/blob/master/lib/nodebotNode.js#L238
Und die defaults von raspi-io https://github.com/nebrius/raspi-io#API aktivieren bei Pis ohne Bluetooth (also alle außer 3B/3B+/0W) den uart. Was für einen Pi nutzt Du @m50434 ?
Ich versuch mal rauszufinden was genau vom RPI-RF-MOD genutzt wird und dann über excludePins und enable* das rausnehmen, ich gugg mal ob ich am Wochenende dazu komm.
ja, war ja anzunehmen.
Was für einen Pi nutzt Du @m50434 ?
Ich nutze den Pi 3 Modell B+ und das Funkmodul MOD-RPI-PCB
Ich versuch mal rauszufinden was genau vom RPI-RF-MOD genutzt wird und dann über excludePins und enable* das rausnehmen, ich gugg mal ob ich am Wochenende dazu komm.
Das ist großartig. Danke. Ich bleibe natürlich dabei und werde dann austesten :-)
@m50434 - hat mir jetzt keine Ruhe gelassen, doch direkt ausprobiert. Scheint zu gehen :)
Bis ich ein neues Release mach kannst das recht easy händisch patchen:
Datei /usr/local/addons/redmatic/lib/node_modules/node-red-contrib-johnny-five/lib/nodebotNode.js
Zeile 238:
node.io = boardModule.RaspiIO ? new boardModule.RaspiIO() : new boardModule();
Zeile ersetzen durch:
node.io = new boardModule.RaspiIO({enableSerial: false, excludePins: ['GPIO19', 'GPIO14', 'GPIO15']});
und den Pi mal rebooten.
@hobbyquaker habe es gleich ausprobiert, allerdings gab es wieder den Absturz des Funkmoduls. Habe nochmal nachgeschaut: Ich weiß es jetzt nicht genau, wie du auf die angegebenen GPIOs gekommen bist (insbesondere der GPIO19 ist mir unklar).
Jedensfalls habe ich nun einfach alle GPIOs excluded, die von meinem Funkmodul MOD-RPI-PCB belegt sind: Da es numerisch die ersten 12 Pins sind, habe ich also folgende GPIOs excluded:
node.io = new boardModule.RaspiIO({enableSerial: false, excludePins: ['GPIO2', 'GPIO3', 'GPIO4', 'GPIO14', 'GPIO15', 'GPIO17', 'GPIO18']});
Damit hat jetzt auch die Einbindung eines Knotens geklappt, ohne das das Funkmodul ausgefallen ist 🎉 (und das Beispiel von oben mit dem Button klappt auch)!
Das sind die Pins des RPI-RF-MOD die ich genannt hab, sorry für die Verwirrung, hatte nicht mehr dran gedacht dass Du ja das andere Funkmodul nutzt. Beim MOD-RPI-PCB sind übrigens nur GPIO14 und 15 (uart) und 18 (reset) belegt. GPIO2, 3, 4 und 17 sind nicht beschaltet.
Hi mal wieder, habe jetzt gerade RedMatic auf 4.7.1 geupdated und in diesem Zuge auch das johnny-five-plugin auf 15.1 geupdated. In dieser Version sind allerdings noch die PINs 14, 15 und 19 excluded.... sollten aber doch 14, 15 und 18 sein.
Arbeite zur Zeit an einem kompletten Rewrite der Johnny Five Nodes, da wird das konfigurierbar werden. Denke ist in 1-2 Wochen soweit.
Hi, grabe mal diesen 2 Jahre alten Thread aus. Ich wollte mal fragen, ob es zur Ansteuerung der GPIOs über das johnny-five-plugin etwas neues gibt (habe nämlich inzwischen wieder Bedarf, GPIOs mit RedMatic für einen Sensor zu benutzen. Mein installiertes Paket ist johnny-five 1.0.0-beta2 Wenn ich einen GPIO über das Modul nutzen möchte, bekomme nach dem deployen immer die Fehlermeldung "pigpio error -1 in gpioInitialise"
Gibt es da schon ne Lösung?
Hi, könnte man den Node node-red-contrib-gpio für das nächste Update mit aufnehmen?! Ich würde gerne einzelne GPIOs des Raspberrys über Node-RED ansprechen können. Eine direkte Installation klappt leider so nicht.