NEWS
Test Adapter rpi2 2.x
-
@garfonso sagte in Test Adapter rpi2 2.x:
Der Adapter reicht das true/false, was du ins state Objekt setzt (nach einigen Überprüfungen), unverändert an die Bibliothek für die GPIOs weiter
Das bedeutet das es wohl Grundlegend geändert wurde. Vor Bookworm war es definitiv andersrum und für mich logischer. Belassen wir es dabei. Wenn du True/False im Hintergrund drehen kannst ohne Auswirkungen (InverseFunction), dann wäre das natürlich auch super. Für alle die mit Ihren alten Scripten/Blockly kommen und jetzt alles umschreiben müssen - definitiv eine ersparnis.
Ich setze nun erstmal um sicher zu gehen das die Relais beim Einschalten/Stromausfall / Restart etc. inaktiv sind den GPIO auf "Ausgang mit Ausgangswert 1".
Jetzt aber noch ein Problem - bitte mal nachstellen.
Wenn ich einen Eingang Abfrage und dieser true ist (Spannung anliegt) und nun einen Adapter Restart mache -> Spannung liegt noch immer an -> geht der Wert auf False.
Der Wert wird also nicht korrekt eingelesen, bis er das erst mal geändert wird. Der Wert darf erst aktualisiert werden, wenn er richtig eingelesen wurde. -
@smallfeuer Ich hatte 2 Ausgänge auf true und 2 auf false. Die beiden mit false haben das Relais anziehen lassen. Raspi reboot. Alle Relais waren abgefallen. Die Beiden, welche angezogen hatten, habe ich noch mal auf Ein (bei mir false) gesetzt. Es passiert nichts. Erst beim erneuten Aus und Einschalten haben die Relais gezogen. Es muß 100% sicher sein, daß nach einem Reboot die Relais in einem bestimmten Status stehen. Auch beim Reboot selber (oder Raspi ohne Spannung) müssen die Relais so stehen (aus).
Der Status in den Objekten blieb wie vor dem Reboot.
Mit welchen Konsolenbefehlen kann ich den Status der GPIO direkt abfragen? -
@laser sagte in Test Adapter rpi2 2.x:
e
gpioinfo -> damit siehst du aber nur Eingang/Ausgang / LOW HIGH
für Pin 17:
pi3:~ $ gpioget gpiochip0 17 gpioget: error reading GPIO values: Device or resource busy
jetzt also den Adapter Stoppen:
bei mir folgender Zustand:
IOB:
22 = true
17 = falseGPIOGET nach deaktivieren des Adapters:
pi3:~ $ gpioget gpiochip0 22 1 pi3:~ $ gpioget gpiochip0 17 1
Was ich nicht verstehen kann, warum ist es bei dir anders? Hast du einen Pi5?
-
@smallfeuer Ich habe einen PI4. Aber eine low-aktive Relaiskarte. Low= Relais gezogen.
-
@laser sagte in Test Adapter rpi2 2.x:
Es muß 100% sicher sein, daß nach einem Reboot die Relais in einem bestimmten Status stehen. Auch beim Reboot selber (oder Raspi ohne Spannung) müssen die Relais so stehen (aus).
Glaub ich hab deinen Text beim ersten mal falsch gelesen. Scheint ja doch identisch.
NA ganz so ist es nicht .
Wenn der Strom ausfällt -> muss das Relais Spannungslos sein. Also bei:Ausgangssituation Status: "false" im IOB
-> wird true (beim Stromausfall - Relais wird losgelassen)
-> sobald Strom/Reboot -> sollte Ausgang wieder "false" werden
(Wenn dieser ohne Anfangswert konfiguriert ist - wenn du natürlich den Anfangswert 1 konfigurierst dann bleibt das Relais aus - so ist es auch bei mir aktuell.) -
@laser Na du kannst ja das Relais bei diesen "Standard Relasis aus dem PI Baukasten Sortiment" anklemmen wie du magst. LOW oder HIGH
Wichtig ist -> erregt ist das Relais wenn Strom da ist - also der Eingang am Relais beschalten ist -> die LED leuchtet. Darum geht es.
Was die Steuerung dahinter macht ist erstmal egal. Wenn dein Relais Stromausfall hat -> muss es in den sicheren Zustand wechseln. Wenn der sichere Zustand bei dir ein geschlossener Stromkreis am Relais ist, dann ist das für die Sache hier aber nebensächlich.
-
@smallfeuer Raspi (4) ausgeschaltet- LED an der Relaiskarte glimmen, Relais aber noch nicht gezogen. Wieder hochfahren- Relais ist abgefallen. Statusabfrage = 1. (Adapter gestoppt). Relais abgefallen (LED aus). Auch wenn der Adapter wieder gestartet wird.
Wo kann ich denn einen Anfangswert konfigurieren? Adapter V.2.3.2
Ärgerlich, daß der Status des GPIO nur bei gestopptem Adapter abgefragt werden kann.EDIT: ich habe jetzt nur Ausgänge betrachtet. Noch keine Eingänge.
-
@smallfeuer sagte in Test Adapter rpi2 2.x:
@laser sagte in Test Adapter rpi2 2.x:
e
gpioinfo -> damit siehst du aber nur Eingang/Ausgang / LOW HIGH
für Pin 17:
pi3:~ $ gpioget gpiochip0 17 gpioget: error reading GPIO values: Device or resource busy
jetzt also den Adapter Stoppen:
bei mir folgender Zustand:
IOB:
22 = true
17 = falseGPIOGET nach deaktivieren des Adapters:
pi3:~ $ gpioget gpiochip0 22 1 pi3:~ $ gpioget gpiochip0 17 1
Was ich nicht verstehen kann, warum ist es bei dir anders? Hast du einen Pi5?
@Garfonso Dieses Problem tritt auf wenn ich den Adapter, oder PI Neustarte - > er schreibt den Eingang 17 auf false und prüft ihn nicht vorher. Meiner Meinung nach müsste der State vom Eingang "schreibgeschützt" sein und müsste sich - selbst wenn er manuell geändert in kürzester Zeit zurück ändern. Normalerweise sind doch alle aktiven GPIO überwacht und wenn der Datenpunkt nicht dem GPIO entspricht muss er sofort umgeschrieben werden.
-
@laser sagte in Test Adapter rpi2 2.x:
Wo kann ich denn einen Anfangswert konfigurieren? Adapter V.2.3.2
Du musst in den Einstellungen der Instanz wo du Eingang und Ausgang definierst, Ausgang mit Anfangswert 0 /1 auswählen.
-
@laser sagte in Test Adapter rpi2 2.x:
Ärgerlich, daß der Status des GPIO nur bei gestopptem Adapter abgefragt werden kann.
JA, stellt sich mir daraus eine Frage:
Wenn der Ausgang 0 ist -> Relais erregt - LED AN
-> dann der Adapter beendet wird
-> wird dann der Wert auf 1 gesetzt und das Relais deaktiviert - LED AUS? -
@smallfeuer Den Anfangswert kann ich nur beim Neuanlegen festlegen. Das war mir nicht klar. Gab es möglicherweise in älteren Versionen noch nicht. Zur Zeit geht, ohne daß ich das konfiguriert habe, der Ausgang auf 1, nach dem Neustart.
Das Relais ist deaktiviert.EDIT: habe jetzt auf "Ausgangswert 1" konfiguriert. Nach dem Neustart des RPI steht auch eine 1 an.
-
@laser Ich kann in der 2.3.1 aktuell einfach umstellen. Dafür muss ich die GPIO nicht löschen.
-
Hi @smallfeuer ,
Sorry, aber ich war im Ausland auf Dienstreise und habe daher erst jetzt Zeit zu antworten. Weis nicht ob du die Tabelle in meinem Orginal Post gefunden hast, sonst hier noch einmal zur Info. Die obere ist von meinem "alten" Pi4 mit Buster und die untere ein Pi5 mit Bookworm. Die jeweiligen rpio Versionen die ich getestet habe stehen links
-
@smallfeuer said in Test Adapter rpi2 2.x:
Das bedeutet das es wohl Grundlegend geändert wurde. Vor Bookworm war es definitiv andersrum und für mich logischer.
Das kann ich ehrlich gesagt im Code nicht nachvollziehen. Also wenn dann kommt das von der Bibliothek. Aber ich hab jetzt mal das invertieren eingebaut.
@smallfeuer said in Test Adapter rpi2 2.x:
Dieses Problem tritt auf wenn ich den Adapter, oder PI Neustarte - > er schreibt den Eingang 17 auf false und prüft ihn nicht vorher. Meiner Meinung nach müsste der State vom Eingang "schreibgeschützt" sein und müsste sich - selbst wenn er manuell geändert in kürzester Zeit zurück ändern. Normalerweise sind doch alle aktiven GPIO überwacht und wenn der Datenpunkt nicht dem GPIO entspricht muss er sofort umgeschrieben werden.
Also beim Adapter start wird der Wert aller Eingänge ausgelesen und in ioBroker entsprechend gesetzt. Wenn du oder ein Skript daran rumfummelst, passiert nichts (außer eine Fehlermeldung im Log). Da bist du mE dann aber auch etwas selber schuld, der Adapter repariert das gefummel nicht.
Wenn sich der Zustand ändert, wird es wieder korrigiert.
Aber ok, ich habe eingebaut, dass er nach der Fehlermeldung den Wert nochmal ausliest.Und ich hab jetzt eingebaut, dass er auch den Wert von GPIO-Ausgängen beim starten liest. Falls das geht, sollten die ioBroker states dann abbilden, was bei den GPIOs an / aus ist. Wobei das für die GPIOs mit definiertem Startwert auch vorher schon der Fall gewesen sein sollte.