NEWS
Test Adapter rpi2 2.x
-
Bitte keine Screenshots von Konsolenausgaben. Dafür gibt es die CodeTags.
-
-
pi@iobroker-pi:~ $ cd /opt/iobroker/ && npm ls opengpio iobroker.inst@3.0.0 /opt/iobroker └─┬ iobroker.rpi2@2.2.1 └── opengpio@1.0.16
Seit der Neuinstallation habe ich jetzt auch die GPIOs unter Objekten, ich muß jetzt mal testen ob sie auch funktionieren.
-
@g-pitzer Ich habe ebenfalls einen Master, der unter Proxmox auf einer Ubuntu VM läuft. Dazu habe ich mehrere Slaves auf Basis von Raspberry Pi Zero 2 W. Ich habe gerade auf einem davon die aktuelle Version des Adapters (2.2.1) installiert. GPIO funktioniert einwandfrei. Ich habe bei den ganzen Problemen hier das Gefühl, dass die C++ Komponente des Adapters eventuell nicht richtig gebaut wird, wenn bei der Erstinstallation die notwendige Bibliothek gefehlt hat oder so. Hast du die Möglichkeit, den Adapter komplett zu deinstallieren und dann neu zu installieren? Bist du sicher, dass du die richtige Version installierst? Ich habe das jetzt auf dem Slave mit
iob url https://github.com/iobroker-community-adapters/ioBroker.rpi2
Gemacht. (Ich hoffe, das ist richtig so. )
Edit: Gerade gesehen, dass bei dir jetzt geht. Hatte sich überschnitten...
-
Vielen Dank für eure Unterstützung,
Nach Neuinstallation funktioniert es jetzt tadellos. Ich hatte aber vorhin gpiod installiert, welches weiter oben im Beitrag empfohlen wurde. Keine Ahnung ob das auch was dazu beigetragen hat.lg und schönes WE
-
Es ist supertoll, daß der Adapter angepasst wurde und wieder benutzbar ist. Danke!
-
-
Hi @garfonso
ich bin am Wochenende von einem Pi4 der noch unter Buster lief auf einen Pi5 mit Bookworm umgezogen.
Bis auf zwei Themen läuft alles einwandfrei. Das eine Thema hängt mit den GPIO´s zusammen. Ich habe die neue Version 2.2.1 des RPio Adapters installiert. Ich kann die IOs auch ansprechen und steuern.
Jedoch ist das Ausgangsverhalten nun invertiert. In meinen unveränderten Programmen ist das Relais beim Pi4 geschaltet wenn ich den Ausgang auf "FALSE" setze (Achtung noch die alte Version des Adapters) , beim Pi5 bei "TRUE".
wenn ich bei beiden gpioinfo aufrufe steht beim Pi4 beispielsweise
line 13: "GPIO13" "sysfs" output active-high [used]
Und beim Pi5
line 13: "GPIO13" "opengpio_4_13_output" output active-high [used]
Für mich stehen daher beide auf active-high und sollten sich doch von daher gleich verhalten.
In der GPIO Config im Adpater stehen beide auf Ausgangswert 1 bzw, Startwert 1(andere Bezeichnung in der Config für mich aber identisch)
Ich hatte grundsätzlich Schwierigkeiten beim umziehen das Backup vom Backupadapter einzuspielen, da ich auf dem "alten" Pi noch die alte nodejs 18 laufen hatte die ich unter Buster eh nicht upgraden konnte. Beim einspielen hat der Pi5 gemoppert das er das unter nodejs18 erstellte Backup nicht mit nodjs20 einspielen kann. Habe daher den Pi5 auf nodejs 18 downgegraded, das Backup rübergebracht und dann auf nodejs20 upgegraded.
Hast du eine Idee was das sein könnte ?
Kann ich das irgend wie umkonfigurieren ?
De- und dann Neuinstallation des RPIO Adapters hat nichts gebracht.Gruß und Dank im vorraus.
-
Hm.. das hab ich eigentlich (tm) übernommen, wie es im alten Adapter auch war. Aber du kannst bei den Ausgängen mit dem Typ explizit einstellen, wie du es gerne hättest. Ich glaube, was du willst, wäre "Ausgabe, Anfangswert 1". Ist das, was du meinst?
-
Ich kann natürlich in der Config das von Ausgabe, Anfangswert 1" auf Anfangswert 0 umstellen. Erschien mir aber nicht logisch, da ich davon ausgegangen bin das die gesamte Konfiguration gleich bleibt.
Wolle mich erst mal versichern bevor ich das in der Config ändere. Von dem Problem hatte sonst keiner berichtet und ich hatte Sorge das etwas bei der Installtion falsch gelaufen ist.
Habe jetzt getestet und bin der Meinung das da was nicht stimmt. Wenn ich die Ausgänge bei alte PI gesetzt habe und dann über SSH den IOB anhalte schalten sich sofort ale Ausgänge weg. Das sollte auch so sein. Beim neuen PI5 bleiben die Ausgänge anstehen, auch wenn ich den IOB anhalte.
Kann es sein das ich in der CONFIG.TXT die beim Booten vom Pi angezogen wird den GPIO irgendwie configurieren muss.
-
Beim Testen ist mir noch aufgefallen das in dem "alten" Adapter es zwei Auswahlfelder gab Tasten bzw. Eingabe "hochgezogen"
Die Auswahl bei der Ausgabe gibt es im neuen Adapter nicht mehr. Es gibt aber den Hinweis das Pull-Up/Down nicht wirklich unterstüzt wird. Wo kann ich das denn heute in deinem Adapter einstellen?Ich hatte aber einmal die Warnmeldung beim Booten vom admin.0 Adapter bekommen
2024-11-24 14:56:40.286 - warn: admin.0 (1298) rpi2 has an invalid jsonConfig: [{"instancePath":"/items/_monitoring/type","schemaPath":"#/definitions/componentType/enum","keyword":"enum","params":{"allowedValues":["accordion","alive","autocomplete","autocompleteSendTo","certificate","certificates","checkLicense","checkbox","chips","color","coordinates","cron","custom","datePicker","deviceManager","divider","file","fileSelector","func","header","icon","image","imageSendTo","instance","interface","ip","jsonEditor","language","number","objectId","panel","password","pattern","port","qrCode","room","select","selectSendTo","sendTo","setState","slider","state","staticImage","staticLink","staticText","table","text","textSendTo","timePicker","user","uuid"]},"message":"must be equal to one of the allowed values"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match "then" schema"}]
Kannst du das Zuordnen ?
-
@moppedman said in Test Adapter rpi2 2.x:
Ausgabe, Anfangswert 1
Ah, der Ausgang steht auf "Anfangswert 1" und stand es auch schon und das Verhalten sich jetzt geändert? Das war mir beim Lesen deines ursprünglichen Post nicht ganz klar. (Warum auch immer, scheinbar hab ich das überlesen, nun lese ich es da sehr klar. )
Dann müssen wir da nochmal gucken... bin mir nicht ganz sicher, ob ich das gewünschte Verhalten des Adapters richtig verstanden habe.
Mein Verständnis bisher ist:
- Anfangswert 0 (bzw. nur "Ausgang"):
true
im Objektrpi2.0.gpio.X.state
führt zu1
am GPIO, also Strom da.false
im Objektrpi2.0.gpio.X.state
führt zu0
am GPIO, also kein Strom da.
- Anfangswert 1:
true
im Objektrpi2.0.gpio.X.state
führt zu0
am GPIO, also kein Strom da.false
im Objektrpi2.0.gpio.X.state
führt zu1
am GPIO, also Strom da.
So ist es implementiert (zumindest sollte es so sein). Gerne mal das debug log anmachen. Da sollte bei einem GPIO mit "Ausgangswert 1" eine Debug-Nachricht kommen, dass er den Wert rumdreht.
Was dazu gekommen ist, ist, dass der Adapter bei Start alle Zustände bei ioBroker ausliest und die GPIOs entsprechend setzt. Führt das vielleicht zu Verwirrung?
@moppedman said in Test Adapter rpi2 2.x:
Die Auswahl bei der Ausgabe gibt es im neuen Adapter nicht mehr
Das ist korrekt, weil der komplette Support für GPIO als "Taster" weggefallen ist. Für einen einfachen Klick war das eh das gleiche, wie ein GPIO als Eingang. Und für die Mehrfachklicks hätte ich da viel nach implementieren müssen, was vorher eine Bibliothek gemacht hat, daher wollte ich vor dem Aufwand erstmal Use-Cases sammeln. Da ist bisher nichts zusammen gekommen.
@moppedman said in Test Adapter rpi2 2.x:
Es gibt aber den Hinweis das Pull-Up/Down nicht wirklich unterstüzt wird. Wo kann ich das denn heute in deinem Adapter einstellen?
Aktuell gar nicht, aber das ist auch keine Änderung gegenüber der alten Adapterversion. Der Adapter konnte Pull-up/Pull-Down noch nie wirklich und hat einfach die Booleans rumgedreht (also dann 1->false usw.).
Für die neue Adapterversion steht das in Aussicht, sobald die Bibliothek, die er nutzt (oder eine Alternative) das kann. Da gibt es aktuell Probleme mit dem bauen des Moduls und es ist noch nicht ganz klar, wie das gelöst werden kann.Grundsätzlich kannst du das "Software" Pull-up aber pro GPIO einstellen. Also in der Tabelle in der Spalte "Hochziehen" anhaken. Pull-Down macht gar nichts, daher habe ich "Herunterziehen" zwar vorgesehen, aber nicht aktiv, um nicht irgendwas zu suggerieren, was nicht passiert.
@moppedman said in Test Adapter rpi2 2.x:
Kannst du das Zuordnen ?
Ja, da war ein Fehler im Code der Konfigurationsoberfläche. Das ist aber behoben (und hatte auf die Funktionalität, also was gespeichert wird usw.) keinen Einfluss.
- Anfangswert 0 (bzw. nur "Ausgang"):
-
Hi und erst mal vielen Dank das du so schnell antwortest. Echt Klasse.
Ja, jetzt hast du es richtig verstanden.
Wenn man sich die Doku auf Rasperry.com zum GPIO anschaut steht da folgendes:
The gpio directive allows GPIO pins to be set to specific modes and values at boot time in a way that would previously have needed a custom dt-blob.bin file. Each line applies the same settings (or at least makes the same changes) to a set of pins, addressing either a single pin (3), a range of pins (3-4), or a comma-separated list of either (3-4,6,8).
The pin set is followed by an = and one or more comma-separated attributes from this list:
ip - Input op - Output a0-a5 - Alt0-Alt5 dh - Driving high (for outputs) dl - Driving low (for outputs) pu - Pull up pd - Pull down pn/np - No pull
gpio settings apply in order, so those appearing later override those appearing earlier.
Examples:
# Select Alt2 for GPIO pins 0 to 27 (for DPI24)
gpio=0-27=a2# Set GPIO12 to be an output set to 1
gpio=12=op,dh# Change the pull on (input) pins 18 and 20
gpio=18,20=pu# Make pins 17 to 21 inputs
gpio=17-21=ipThe gpio directive respects the "[…]" conditional filters in config.txt, so it is possible to use different settings based on the model, serial number, and EDID.
GPIO changes made through this mechanism do not have any direct effect on the kernel. They don’t cause GPIO pins to be exported to the sysfs interface, and they can be overridden by pinctrl entries in the Device Tree as well as utilities like pinctrl.
Note also that there is a delay of a few seconds between power being applied and the changes taking effect - longer if booting over the network or from a USB mass storage device.
Dabei ist das dh / dl sprich Driving High und Driving Low des Ausgangs dafür verantwortlich ob der Transistorausgang as Sink or Source aggiert (also Spannung setzen oder auf Masse ziehen) . Die Standardeinstellung beim Pi GPIO ist "source" wenn er auf HIGH steht "sink" wenn LOW.
Diese Konfiguration würde über die config.txt beim Booten geladen werden wenn ich das da eintrage. Was ich nicht weis ob dann der RPi Adapter diese Basiseinstellung "überschreibt" bzw. "umkonfiguriert".
Nachfolgend ein Auszug vom DEBUG log. beim Starten des Adapters. Beim Lesen von unten nach oben wurde erst (exemplarisch) vom Adapter Ausgang 5 & 6 auf "OutHigh" gesetzt. Das sollte dem dl Driving High entsprechen.
Und dann wird das Signal von FALSE auf TRUE invertiert und schlußendlich der Ausgang auf FALSE gesetzt
rpi2.0 2024-11-25 19:43:17.160 debug Written false into port 6 rpi2.0 2024-11-25 19:43:17.160 debug Inverting value from false to true for port 6 because set to outhigh rpi2.0 2024-11-25 19:43:17.151 debug Written false into port 5 rpi2.0 2024-11-25 19:43:17.150 debug Inverting value from false to true for port 5 because set to outhigh rpi2.0 2024-11-25 19:43:17.142 debug Port 6 direction: outhigh rpi2.0 2024-11-25 19:43:17.142 debug Port 5 direction: outhigh rpi2.0 2024-11-25 19:43:17.142 debug GPIO chip undefined initialized rpi2.0 2024-11-25 19:43:17.142 debug Got chip: class DefaultDevice extends classes_1.Device { } rpi2.0 2024-11-25 19:43:17.141 debug Using GPIO chip 4 for Raspberry Pi 5 or newer. rpi2.0 2024-11-25 19:43:17.141 debug Got 5 from Raspberry Pi 5 Model B Rev 1.0
MOD-EDIT: Code in code-tags gesetzt!
Mache doch bitte mal bei dir den Test wenn du den Ausgang gesetzt hast und das Relais ist angezogen und du den IOB über SSH anhälst ob dann die Relais abfallen.
Final noch der Hinweis das ich im Adapter KEIN Kästchen habe einen "Haken" für den pull.up / pull down zu setzen.
Sorry, ist jetzt recht lang geworden aber ging nicht anders.
-
@garfonso sagte in Test Adapter rpi2 2.x:
Das ist korrekt, weil der komplette Support für GPIO als "Taster" weggefallen ist. Für einen einfachen Klick war das eh das gleiche, wie ein GPIO als Eingang. Und für die Mehrfachklicks hätte ich da viel nach implementieren müssen, was vorher eine Bibliothek gemacht hat, daher wollte ich vor dem Aufwand erstmal Use-Cases sammeln. Da ist bisher nichts zusammen gekommen.
Danke erstmal für deine (eure) Arbeit!
Bevor ich den Adapter teste, noch eine Frage.Ich nutze aktuell einen Eingang der GPIOs mit einem Reed-Kontakt (Gaszähler)
Für mich ist das ein Taster. Funktioniert das mit dem neuen Adapter.
Eventuell habe ich da eine Verständnisproblem -
Am Ende kommt es darauf an, wie du den Adapter Konfiguriert hast. Wenn du da nicht "Eingang" sondern "Button" (oder so) eingestellt hast, dann wird die neue Version den wie einen "Eingang" behandeln, was am Ende heißt, dass sich der state-Name ändert, von click oder sowas nur noch auf "state".
Wenn du den aber auch jetzt schon als "Eingang" im Adapter konfiguriert hast, ändert sich da nichts.
-
@garfonso ok, aktuell ist der Sensor als Eingang deklariert. Dann werd ich die Tage mal umstellen.
-
@garfonso
Auch ich möchte mich für Deine (Eure) Mühen bedanken, dass der RPI2 Adapter wieder zu nutzen ist.
Ich nutze ihn unter anderem auch um den Gaszähler-Stand auszulesen. Hier habe ich das Problem, dass jeden Tag zu viel gezählt wird. Ich habe sowohl im Adapter mit der Entprellung, als auch mit dem anhängenden Script versucht das in den Griff zu bekommen. Leider ohne Erfolg. Hast Du noch eine Idee? -
@searcher57
Warum stellst du den trigger auf "wird aktualisiert"? Damit müsstest du doch jeden Impuls zweimal zählen, weil der state sich zutrue
und dann auf wieder auffalse
ändert, also zwei "Aktualisierungen".Sonst hab ich keine Idee, hab aber selber auch noch keine Impulszähler (erfolgreich) gebaut.
-
@garfonso said in Test Adapter rpi2 2.x:
@searcher57
Warum stellst du den trigger auf "wird aktualisiert"? Damit müsstest du doch jeden Impuls zweimal zählen, weil der state sich zutrue
und dann auf wieder auffalse
ändert, also zwei "Aktualisierungen".Sonst hab ich keine Idee, hab aber selber auch noch keine Impulszähler (erfolgreich) gebaut.
Ich habe es auf "ist wahr" gestellt und werde es beobachten. Danke!
-
@searcher57 said in Test Adapter rpi2 2.x:
@garfonso said in Test Adapter rpi2 2.x:
@searcher57
Warum stellst du den trigger auf "wird aktualisiert"? Damit müsstest du doch jeden Impuls zweimal zählen, weil der state sich zutrue
und dann auf wieder auffalse
ändert, also zwei "Aktualisierungen".Sonst hab ich keine Idee, hab aber selber auch noch keine Impulszähler (erfolgreich) gebaut.