NEWS
RPI2.0 einige GPIOs sind mit Raspberry 3 nicht schaltbar !
-
Hallo Community,
Aber meine Frage ist ob es die Möglichkeit gibt das wenn der rpi2.0 Adapter Startet,
das ich definieren kann ob die gpios true oder false beim Start sind?
bei mir sind sie immer false, jedoch benutze ich eine Relaiskarte die bei Ground(also false am gpio) schaltet.
Und demnach ziehen die Relais alle beim Starten erstmal an.
Bis ich dann gpios auf true setze.
Vielen Dank schon mal `
Über einen kleinen Umweg geht das schon. Du musst ein Script (oder Blockly) auf den Start des RPi2-Adapters triggern und darin dann entsprechend die gewünschten States setzen. Wenn dir das so nicht weiterhilft
melde dich nochmal, dann kann ich dir mal ein Beispielscript basteln wenn ich wieder an meinem System bin…
-
Hallo Community,
Aber meine Frage ist ob es die Möglichkeit gibt das wenn der rpi2.0 Adapter Startet,
das ich definieren kann ob die gpios true oder false beim Start sind?
bei mir sind sie immer false, jedoch benutze ich eine Relaiskarte die bei Ground(also false am gpio) schaltet.
Und demnach ziehen die Relais alle beim Starten erstmal an.
Bis ich dann gpios auf true setze.
Vielen Dank schon mal `
Über einen kleinen Umweg geht das schon. Du musst ein Script (oder Blockly) auf den Start des RPi2-Adapters triggern und darin dann entsprechend die gewünschten States setzen. Wenn dir das so nicht weiterhilft
melde dich nochmal, dann kann ich dir mal ein Beispielscript basteln wenn ich wieder an meinem System bin… `
Hallo Thisoft,
Ich habe die Tage genau das mal versucht. Bin ein blutiger Anfänger was das Programmieren angeht.
Wenn ich die States setzen möchte mit dem Start der Instanz als Trigger,
sind diese in diesem Moment noch gar nicht Definiert.
somit habe ich über einen Counter die die States verzögert geschaltet.
Als ich die Zeit des Counters so einstellen wollte, das die States sofort wenn sie definiert sind auf True stehen,
musste ich feststellen das ich das nicht hin bekomme. Als wenn das Skript oder die Instanz bei jedem start unterschiedlich lange brauch zum Starten. Entweder kam der Fehler das die States nicht definiert sind oder die States sind trotzdem kurz auf False gestartet und dann kurz danach erst True geworden.
Kann aber auch an meiner programmierfähigkeiten liegen.
code aus Blockly:
var timeout;
on({id: 'system.adapter.rpi2.0.alive', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
timeout = setTimeout(function () {
setState("rpi2.0.gpio.3.state"/GPIO 3/, true);
setState("rpi2.0.gpio.7.state"/GPIO 7/, true);
setState("rpi2.0.gpio.10.state"/GPIO 10/, true);
setState("rpi2.0.gpio.12.state"/GPIO 12/, true);
setState("rpi2.0.gpio.15.state"/GPIO 15/, true);
setState("rpi2.0.gpio.18.state"/GPIO 18/, true);
setState("rpi2.0.gpio.21.state"/GPIO 21/, true);
setState("rpi2.0.gpio.23.state"/GPIO 23/, true);
}, 4000);
});
-
Naja, dass die States kurz auf False starten und dann erst durch das Script auf True gesetzt werden wirst du kaum vermeiden können - zumindest nicht über direkt in ioBroker. Wenn das auch stört kannst du das höchstens direkt im RasPi lösen indem du ein Python-Script beim Starten ausführst was die Ausgänge setzt. Bin ich aber auch nicht sicher, wahrscheinlich gibt es auch da einen Moment lang False…
Ganz umgehen kannst du das vermutlich wirklich nur mit anderer Hardware ...
-
Hallo,
das selbe Problem wie "Marcato88" mit den GPIO-Ausgängen habe ich auch.
Direkt nach dem Start des Raspberrys und bevor die IoBroker-Scripte laufen, schalten die GPIO-Ausgänge auf "false". Dies hat zur Folge, dass die Relais der Ausgangskarte nach dem Start anziehen und erst wieder nach einigen Sekunden abfallen wenn das IO-Brokerscript läuft.
Bei einer Alarmanlage mit Sirene und Blitzleuchte bedeutet das leider einen Fehlalarm !
Ich wäre ebenfalls sehr an einer Lösung interessiert die <u>GPIO-Ausgänge direkt beim Start des Raspberrys auf "true"</u> zu setzten. damit die Relais nicht anziehen.
Gibt es hierfür schon eine Lösung ?
LG emblitz
-
Wenn's wirklich sicher sein soll, dann IMO nur mittels Hardware- und/oder Logikänderung so dass GPIO=false der "Normalzustand" ist.
Aber vielleicht gibt's ja noch eine Möglichkeit von den Raspi-Experten…
-
Solltet ihr vielleicht mal lesen :
https://www.raspberrypi.org/forums/view … 44&t=24491
Laut deren Aussagen sind beim Booten alle GPIO LOW ausser GPIO0/2, GPIO1/3, GPIO4, GPIO7 / GPIO8. Diese 5 sind HIGH beim booten....
Also die passenden Ausgänge für die wichtigen Funktionen anhand der Angaben auswählen....
und ggf. die Logic von den Programmen anpassen
Grüße
Tom
-
Danke!
Wird sofort ausprobiert.
Ich melde mich zurück…
-
Hallo,
für den Test habe ich <u>alle</u> Scripts in IoBroker gestoppt sowie IoBroker über Putty ebenfalls gestoppt und Iobroker ohne Scripts anschließend wieder gestartet.
Leider sind die o.g. GPIOs bei meinem Raspberry mit "RASPBIAN STRETCH LITE" false, d.h. die Relais der Ausgangskarte ziehen an !
Kann das jemand bestätigen ?
LG emblitz
-
Ich kann das jetzt nicht testen aber hier steht:
> Laut deren Aussagen sind beim Booten alle GPIO LOW ausser GPIO0/2, GPIO1/3, GPIO4, GPIO7 / GPIO8\. Diese 5 sind HIGH beim booten….
Booten meint PI restart.
-
Ah,
danke für die Info.
Ich habe nur einen Restart des IoBrokers gemacht.
Ich probiere es nochmals mit Reboot.
-
So, ich habe den Raspi ohne Scripte neu gestartet und über Putty mit "gpio readall" folgendes Ergebnis erhalten.
filename="Bild_2018_03_14 001.jpg" index="0">~~
TomT schreibt (Vielen Dank TomT):
__Solltet ihr vielleicht mal lesen :
https://www.raspberrypi.org/forums/view … 44&t=24491
Laut deren Aussagen sind beim Booten alle GPIO LOW ausser GPIO0/2, GPIO1/3, GPIO4, GPIO7 / GPIO8. Diese 5 sind HIGH beim booten....
Also die passenden Ausgänge für die wichtigen Funktionen anhand der Angaben auswählen....
und ggf. die Logic von den Programmen anpassen
Grüße
Tom__
Hierzu habe ich eine Verständnisfrage:
In der "gpio readall-Liste" sind andere Pins mit GPIO bezeichnet als tatsächlich mit IoBroker geschaltet werden !
IoBroker steuert die GPIOs mit den Nummern in der Spalte "BCM" (siehe gelbe Pfeile).
Ich habe mal alle GPIOs in der Spalte "Name" markiert, welche in der Spalte V eine "1" haben.
Dies sind mehr als im o.g. Link von TomT zitiert genannt (9 Stück statt der o.g. 5 Stück).
Welche GPIOs sind gemeint ? Die in der Spalte "Name oder "BCM" ?
LG emblitz
-
Hilft dir die Erklärung am Ende dieser Seite:
-
Ich habe den Fehler eingekreist.
Der RPI-Adapter ist vermutl. schuld.
Nachdem ich nun das Relais auf den Ausgang des GPIO7 geschaltet und im Script geändert habe, glimmt nun nach dem Reboot des Raspberrys die LED für des entsprechende Relais auf der Ausgangskarte nicht mehr schwach sondern sie ist ganz aus wenn der RPI-Monitor RPI 2.0 nicht gestartet ist.
Sowie ich den RPI-Monitor als Instanz starte, schaltet dieser die GPIOs innerhalb von IoBroker auf "false" und die Relais ziehen nicht gewollt an !!!
Ich benötige somit ein "true" zum Start des IoBrokers/RPI-Monitors 2.0 bevor die Scripte starten um einen Fehlalarm zu vermeiden.
Wie kann ich im die RPI-Monitor GPIO-Ausgänge zum Start auf zwingend "true" schalten ?
Besteht in den RAW-Einstellungen für das Objekt rpi2.0 > rpi2.0.gpio.7.isInput die Möglichkeit den grundsätzlichen Status des Ausgangs auf "true" zu setzen ?
LG
emblitz
-
Hi,
bin keine Script Profi aber macht es dann nicht mehr sinn die GPIO direkt aus dem Script herraus anzusprechen anstatt sich auf die Funktion des Adapters zu verlassen?
Gruß
-
Ja, das hatte ich gemacht.
Das Problem ist, dass das Script erst startet wenn die Relais bereits über den Adapter direkt während des IoBroker-Starts angesprochen werden.
Vermutlich ist die Lösung eine 8-Kanal Relaiskarte zu kaufen bei der die Relais <u>nicht</u> anziehen wenn die GPIOs "false" sind.
Bei meiner vorhandenen Relaiskarte ziehen die Relais an wenn die GPIOs "false" sind.
Leider habe ich so eine Relaiskarte mit der Funktion "GPIO false = Relais aus" noch nicht gefunden.
Kann mir jemand einen Link senden oder einen tipp geben wo ich so eine Karte kaufen kann ?
LG emblitz
-
Passiert das auch wenn die GPIOs im Adapter alle deaktiviert sind?
Wollte demnächst mein Garagentür darüber steuern… ist aber ungünstig wenn das bei Adapter oder Pi reboot dann öffnet.
-
Das habe ich nicht ausprobiert.
Wenn der gesamte Adapter deaktiviert wird, ziehen die Relais nicht an.
Leider habe ich so eine Relaiskarte mit der Funktion "GPIO false = Relais aus" noch nicht gefunden.
Kann mir jemand einen Link senden oder einen tipp geben wo ich so eine Karte kaufen kann ?
LG emblitz
-
Bau doch in die GPIO Anschlüsse einen Mosfet oder einen Transistor ein, dann invertierst du die Signale.
Schützt auch gleichzeitig deinen Raspi vor Impulsen u.ä.
Nimm nen Wand & Wiesen NPN Transistor.
Bei 1K Vorwiderstand fließen nur knapp 4mA…
Da reicht n billiger Transi
Grüße
Tom
-
Hallo TomT,
Deine invertierte / negierte Funktion, also GPIO "false = Relais an" haben die üblichen Mehrfachrelaiskarten für den Rapberry bereits.
Ich benötige GPIO "false = Relais aus" !
Bei den Preisen der Relaiskarten zwischen ca 4€ und 10€ ist fraglich ob sich der Aufwand für den Eigenbau lohnt ?
Daher meine Frage, ob es die Relaiskarten mit der Funktion GPIO "false = Relais aus" zu kaufen gibt oder ob ich alternativ statt neuer Relaikarte im RPI-Adapter in den Raw-Einstellungen (oder wo auch immer) der GPIO-Objekte die Startfunktion negieren kann ?
Beim Start des RPI-Adapters satt GPIO "false" nun GPIO nach Start "true" damit die Relais beim Start aus sind und ein Fehlalarm vermieden wird bevor die Scripte des IoBrokers starten?
LG emblitz
-
Hallo emblitz,
ich kenne keine Karten mit deinen Voraussetzungen, daher kann ich dir dahin gehend keinen Tip geben. Ausser meinen obigen mit dem invertieren.
Wenn die Karte so eine Schaltung hat, dann auf Grund der Tatsache, das die Raspipins das Relais nicht schalten können und diese Verstärkerstufe brauchen.
Denn das ist das was ich aufgezeichnet habe letztlich. Diese Beschaltung darfst du nicht auf der Relaiskarte entfernen, denn dann gehen deine GPIOs kaputt.
Ich kann mir auch nicht vorstellen, daß es solche Relaiskarten gibt. Es sind ja auch nicht alle Relais eingeschaltet.
Dein Problem liegt nicht im ioBroker. Und dementsprechend kannst du das nirgendwo im Broker abstellen.
Die GPIO werden von der Hardware gesetzt beim Starten des Raspi selbst und noch bevor der ioBroker überhaupt startet.
Im Link den ich ein paar Beiträge weiter oben gepostet habe, findet sich dieser Hinweis.
Selbst ein Script, was beim Einschalten des Raspi auf Betriebssystemebene die GPIOs definiert setzt, kommt es zu Verzögerungen von einigen Augenblicken.
Da ich den Raspi hier nicht frei zum Spielen habe, kann ich das mal nicht so eben ausprobieren.
Mich würde mal der zustand interessieren, wenn der Raspi gestartet ist aber ioBroker NICHT mitgestartet wird.
Laut Aussage das der Raspi selbst die GPIOS auf unterschiedliche Stati setzt, müssten einige Relais dann ein sein, andere aus.
Sind denn nach dem Start des ioBroker mit dem RPI Adapter wenigstens alle Relais auf dem gleichen Status?
Dann setzt der Adapter die GPIOs nämlich nochmal um auf einen definierten Stand.
Und kannst du nicht einfach einen anderen GPIO nehmen? So wie ich das verstanden habe dreht sich dein ganzes Problem nur um den GPIO 7…
BTW.
Wenn GPIO false => Relais = Aus dann brauchst du eine grundsätzlich andere Schaltung als die gezeichnete.
Diese hier :
Grüße
Tom