NEWS
Möglichkeit mit raspberry Ein- u. Ausgänge schalten ?
-
Hallo,
tolles Projekt der iobroker. Habe mir auch mal Openhub angesehen, dcoh die Bedienung beim iobroker gefällt mir deutlich besser.
Bin noch ganz am Anfang, habe aber den iobroker auf einem raspberry am laufen.
Ein paar Fragen an die Experten:
- würde ich gerne zum Testen einfach ein paar Ein und Ausgänge über den raspberry schalten bzw. abfragen.
Geht das irgendwie? einen Adapter habe ich leider dafür nicht gefunden.
-
Oder gibt es einfache andere Hardware mit der man das machen kann.
-
Ich habe noch alte Heizungsregler von ELV Typ: FHT80B-2 kann ich die auch noch über iobroker ansteuern
Als Idee wäre vielleicht zukünftig noch ein Adapter für die Fritzbox ganz interesant.
Dank schon mal im voraus
schrader
-
Es könnte über node-red gehen.
Da sind raspi nodes dabei.
Gruß
Rainer
Gesendet von meinem LIFETAB_S785X mit Tapatalk
-
Hallo schrader
willkommen im Forum.
wie Homoran bereits geschrieben hat ist es mit Node-RED möglich.
Ich selber bin noch nicht so weit, dass ich an den GPIOs etwas angeschlossen habe.
Für die Einarbeitung in Node-RED gibt es hier auch ein paar Beispiele.
Gruß
derAuge
-
ich habe genau zu diesem Problem eine Odyssee hinter mir!
Steffen konnte mir dann helfen (die Götter verneigen sich vor ihm!).
auf dem Raspi liegt ein python script dass ich mit einem java script
! createState('startPythonhoch');
! on({id: "javascript.0.startPythonhoch"}, function (obj) {
! var python = require('child_process').spawn('python', ["/opt/hoch.py"]);
! python.on('close', function(code){
! if (code !== 0) {
! log('Error: ' + code);
! } else {
! log('OK');
! }
! });
! });
gestartet werden kann! funktioniert einwandfrei!Einfache Sachen würde ich mit Node-Red machen
-
` > ich habe genau zu diesem Problem eine Odyssee hinter mir!
Steffen konnte mir dann helfen (die Götter verneigen sich vor ihm!).
auf dem Raspi liegt ein python script dass ich mit einem java script `
Hallo mimquadrat,
bin leider nicht so deer Experte, kannst Du mir noch ein paar Infos dazu geben wie Du das gennau damit gelößt hast.
Gruß
schrader
-
ich habe genau zu diesem Problem eine Odyssee hinter mir!
Steffen konnte mir dann helfen (die Götter verneigen sich vor ihm!).
auf dem Raspi liegt ein python script dass ich mit einem java script
! createState('startPythonhoch');
! on({id: "javascript.0.startPythonhoch"}, function (obj) {
! var python = require('child_process').spawn('python', ["/opt/hoch.py"]);
! python.on('close', function(code){
! if (code !== 0) {
! log('Error: ' + code);
! } else {
! log('OK');
! }
! });
! });
gestartet werden kann! funktioniert einwandfrei!Einfache Sachen würde ich mit Node-Red machen `
Aber warum python?? Man kann doch direkt aus JS schalten.In der letzen Version von iobroker.javascirpt das NPM-Modul "pi-gpio" einzuschalten und dann mit dem Skript:
var gpio = require("pi-gpio"); gpio.open(16, "output", function(err) { // Open pin 16 for output gpio.write(16, 1, function() { // Set pin 16 high (1) gpio.close(16); // Close pin 16 }); });
GPIO Schalten.
-
bluefox hat natürlich recht, für einfaches an und ausschalten ist java gut.
Aber für komplexere Sachen (zB einen Schrittmotor steuern) brauche ich Vorlagen aus Tutorials (youtube zb).
Diese Tutorials sind meistens in python. Also meine depperl-Vorgehensweise in kurz.
1. Ein Python script raussuchen (aus nem Tutorial zB)
2. Über SSH dieses Skript testen
sollte dann funktionieren
jetzt müssen wir das python script über java ausführbar machen
3. Den java adapter in iobroker installieren
4. ein neues script anlegen mit dem Inhalt von mir oben (der Ort an dem das python script liegen muss is da auch drin)
5. Ein neuer Datenpunkt wird jetzt angelegt
6. Jetzt den java adapter neu starten und das script zB über iobroker.vis und einem button starten
wenn du nicht klar kommen solltest PN. Wenn dir ioBroker gefällt spenden.
-
Dank an alle, werde mir das mal alles etwas genauer ansehen.
` > Es könnte über node-red gehen.Da sind raspi nodes dabei. `
Das scheint mir für einen Anfänger noch das Einfachste zu sein.Weiß jemand, ob man bei den Nodes auch noch die IP Adresse mit angeben kann, dann bestünde ja die Möglichkeit verschiedene raspberry in einem Netz zu adressieren.
` > 1. Ein Python script raussuchen (aus nem Tutorial zB)
2. Über SSH dieses Skript testen
sollte dann funktionieren
jetzt müssen wir das python script über java ausführbar machen
3. Den java adapter in iobroker installieren
4. ein neues script anlegen mit dem Inhalt von mir oben (der Ort an dem das python script liegen muss is da auch drin)
5. Ein neuer Datenpunkt wird jetzt angelegt
6. Jetzt den java adapter neu starten und das script zB über iobroker.vis und einem button starten
wenn du nicht klar kommen solltest PN. Wenn dir ioBroker gefällt spenden. `
Da muss ich glaube gut ausgeschlafen haben. Habe mal nach dem python script gesucht, aber auf die schnelle nichts gefunden` > In der letzen Version von iobroker.javascirpt das NPM-Modul "pi-gpio" einzuschalten und dann mit dem Skript:
Code: Alles auswählen
var gpio = require("pi-gpio");
gpio.open(16, "output", function(err) { // Open pin 16 for output
gpio.write(16, 1, function() { // Set pin 16 high (1)
gpio.close(16); // Close pin 16
});
}); `
Wie kann ich denn das NPM-Modul "pi-gpio" einschalten?
-
Hier
-
Danke
schrader
-
Hi, ist zwar schon etwas älter aber bist Du oder jemand Anderes da schon weiter? :?:
> Weiß jemand, ob man bei den Nodes auch noch die IP Adresse mit angeben kann, dann bestünde ja die Möglichkeit verschiedene raspberry in einem Netz zu adressieren.
Die Raspi Nodes für node-red kann ich auch irgendwie nicht finden. Kann auch sein das ich im Moment mal wieder den Wald vor lauter Bäumen nicht sehe. :shock:
Danke und Gruß
-
Keiner eine Idee oder Lösung?
Konkret habe ich an einem Raspi im Netz einen Funksender angeschlossen mit dem ich Funksteckdosen schalte. Läuft im Moment ganz ok über http. wenn man das über iobroker anders lösen kann wäre das klasse. vielleicht mit node-red auf dem pi und das dann irgendwie fernsteuern. Ich habe da absolut keinen Ansatz. Vielleicht hat das ja jemand schon so am laufen.
Gruß
-
Hallo krissi,
wie im Verlauf zu sehen gibt es eine ganze Reihe von Möglichkeiten, die gpio des Raspberry anzusprechen:
-
Über Node-Red mit diversen spezifischen Nodes für einfaches Lesen und Schalten der pins, speziellen Nodes für Temperatur, usw. Da gibt es ziemlich viele verschiedene
-
Über das exec-Kommando zum Ausführen eines Kommandos wie z.B. das WiringPi gpio
-
Über einen entsprechenden node.js Node aus dem JavaScript-Adapter heraus
usw.
Viele Wege führen nach Rom. Welche der Alternativen man verwenden möchte liegt im Wesentlichen an seinem Background und wie man seine restliche Steuerung umsetzen möchte.
In node-red sind die Nodes für einfaches Schalten bereits dabei und diese sollen ganz unten links im Bereich Raspberry_Pi angezeigt werden. Falls nicht, kann diese aber nachinstallieren, indem man den Namen des RPM-Pakets in den Adaptereinstellungen für Node-Red in ioBroker einträgt.
Diese wären z.B.
-
Normale gpio-Funktionen: http://flows.nodered.org/node/node-red-contrib-gpio
-
Temperaturen mit 1-Wire Sensoren http://flows.nodered.org/node/node-red-contrib-1wire
-
Temperaturen über DHT11/22 http://flows.nodered.org/node/node-red- … dht-sensor
Beim Schalten von Steckdosen kommt es darauf an, was das für Steckdosen sind wie diese angebunden sind. Ich gehe mal davon aus, dass es sich um die ganz normalen Baumarkt-Steckdosen handelt, die mittels 433 MHz geschaltet werden.
Wenn da ein Schaltmodul existiert, welches mittels HTTP/S erreichbar ist, kann man hier auch wieder über alle oben genannten Wege einen HTTP GET/PUT-Request an die entsprechende Adresse schicken. In Node-Red geht das mittels http request-Node.
Wenn du die Steckdosen direkt vom Pi aus schalten möchtest, brauchst du ein entsprechendes 433MHz Sendemodul, welches mit den gpio-Pins verbunden wird. Dieses kann dann über die Kommandoschnittstelle z.b.
-
über das send-Programm von rcswitch angesprochen werden
-
mit den entsprechenden node.js-Node aus Javascript heraus https://github.com/marvinroger/node-rcswitch
-
mit Node-Red mit dem rcswitch2-Node https://github.com/nobodyMO/node-red-contrib-rcswitch2
Das ansprechen der Hardware geht beim Pi jedoch immer nur lokal. D.h. wenn du mehrere Pi haben willst, die jeweils schalten können, muss auf jedem der Pi eine Anwendung laufen, die die Kommandos lokal aufruft und das Ergebnis zurückliefert. Auch hier gibt es wieder tausende Lösungsmöglichkeiten, die von den sonstigen Anforderungen, den persönlichen Vorlieben und den Sicherheitsanforderungen abhängen. Spontan einfallen tun mir hier:
-
Multi-Host-Installation von ioBroker
-
Webservice-Lösung mit Apache und PHP
-
Einfacher Webservice direkt mit node.js
-
Webservice über node-red
-
Remote-Shell mittels SSH
Lg
Markus
-
-
Hi Markus
Danke erst einmal für deine ausführliche Antwort!
Noch mal zum besseren Verständnis:
Meine Baumarktfunksteckdosen funktionieren per http und WiringPi schon. Ich kann die mit der Fernbedienung oder mit vis schalten (Programm auf der lxccu / Banana). Ich hab nur manchmal Aussetzer. Dann starte ich den daemon auf dem Pi neu und dann geht es wieder. Warum auch immer! Die Aussetzer sind natürlich immer dann wenn meine Frau das Licht schalten möchte!!!
Jetzt hatte ich den Gedanken das ich auf dem Pi Node-Red installiere und das dann irgendwie einfacher und stabiler steuern kann. Wäre also dein Vorschlag "Node-Red mit dem rcswitch2-Node" das was ich auf dem Pi möchte. Die Frage ist dann nur wie ich das dann von der ccu aus ansprechen muss. Ich mach mich da mal am WE ran.
Gruß,
Andre