NEWS
Test Adapter rpi2 2.x
-
@moppedman
Ok, danke für die Tabelle.Ich hab heute nochmal Zeit zum testen gefunden und... äh... wie du festgestellt hast, hatte "Startwert XY" keine Funktion... hust
Das sollte in der 2.3.2 repariert sein.@Hasont
Gilt für dich auch -> Starwert 1/0 hat in der 2.3.1 (und früher) keinen Effekt, sollte aber in 2.3.2 etwas tun. Ich hoffe, das hilft dir weiter.@Smallfeuer
behebt das dein Problem vielleicht auch? kopfkratz -
@garfonso Den Ausgang hast du noch nicht Invertiert, oder? Siehe meinem letzten Beitrag?
Wenn das keinen Stört dann sollten wir es so lassen. Ich würde am WE mal die neue Version testen, aber aktuell läuft es wie gesagt problemlos. Never Change a running System ^^.
Ich hab die Tabelle von @Moppedman nicht gefunden, könnt Ihr die mal teilen?
-
@smallfeuer said in Test Adapter rpi2 2.x:
Das Problem mit dem vertauschten True/False bezieht sich bei mir nur auf den Ausgang.
line 22: "GPIO22" "opengpio_0_22_output" output active-high [used]
Bei state True ist der Ausgang ohne Spannung.Aktuell funktioniert alles - die Schaltung des Ausgangs erscheint mir in dem Fall halt nur unlogisch. Daher nochmal im Detail.
Das meinst du? Da gibt es aktuell nichts was den Wert irgendwie umdrehen würde (das hatte ich falsch im Kopf). Habe es gerade nochmal getestet. 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. Soweit ich das sehe, kann ich da auch (aktuell) nichts konfigurieren. Insofern wüsste ich nicht, wie ich das ändern kann.
Wenn ich das richtig sehe, hatte @Elektroman den Wunsch da das true/false konfigurierbar umzudrehen. Das werde ich mir angucken, wie ich das mache. Sollte gehen, ist ja nur eine Configsache. Komme ich hoffentlich die Tage zu.
Was aber sein kann, ist, dass im state bei einem Ausgang Unsinn steht, der hat auch den Flagread: false
gesetzt. Insofern sollte man sich mehr damit beschäftigen, was man da rein schreibt als was gerade drin steht.Der Post von Moppedman mit der Tabelle ist hier
-
@garfonso
Vielen Dank für deine Hilfe, anbei die Datei{ "c_cpu": true, "c_raspberry": false, "c_memory": true, "c_network": true, "c_sdcard": true, "c_swap": true, "c_temperature": true, "c_uptime": true, "c_wlan": true, "interval": 60000, "gpioSettings": [ { "gpio": 12, "configuration": "outlow", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": "Wasserstop Garten" }, { "gpio": 13, "configuration": "outlow", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": "Tuya V2" }, { "gpio": 16, "configuration": "outlow", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": "Carport V1" }, { "gpio": 17, "configuration": "in", "debounceOrPoll": 250, "pullUp": false, "pullDown": false, "label": "Taster V3 Haus" }, { "gpio": 18, "configuration": "in", "debounceOrPoll": 250, "pullUp": false, "pullDown": false, "label": "NC" }, { "gpio": 19, "configuration": "outlow", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": "Haus V3" }, { "gpio": 20, "configuration": "outlow", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": "Garten V4 NC" }, { "gpio": 21, "configuration": "outlow", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": "Wasserstop Haus" }, { "gpio": 22, "configuration": "in", "debounceOrPoll": 250, "pullUp": false, "pullDown": false, "label": "NC" }, { "gpio": 23, "configuration": "in", "debounceOrPoll": 250, "pullUp": false, "pullDown": false, "label": "NC" }, { "gpio": 24, "configuration": "in", "debounceOrPoll": 250, "pullUp": false, "pullDown": false, "label": "NC" }, { "gpio": 25, "configuration": "outlow", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": "Trafo Ventile" }, { "gpio": 26, "configuration": "outlow", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": "Garten V1" }, { "gpio": 27, "configuration": "in", "debounceOrPoll": 0, "pullUp": false, "pullDown": false, "label": null } ] }
Ist frisch installiert und alle Relais angezogen.
Werte in Objekte sind nach Neuinstall "null" und nach setzen von true und false gehen die Relais aus und das kommt im log nach Neustart.rpi2 has an invalid jsonConfig: [{"instancePath":"/items/_gpios/items/_pullUpWarning/hidden","schemaPath":"#/patternProperties/%5E.%2B/properties/hidden/type","keyword":"type","params":{"type":"string"},"message":"must be string"},{"instancePath":"/items/_gpios","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/9/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]
Wie komme ich zur 2.3.2 damit ich die testen kann.
Wie versprochen, mach ich jetzt alles unter neu aufgesetzten Raspie 4 mit Bookworm 64bit.
LG Horst -
Hallo Garfonso,
ich habe gerade das Update mit der Katze auf 2.3.2 aufgespielt.
Es kam eine Meldung, dass ichsudo apt --fix-broken install
auführen soll was ich auch gemacht habe. Beim zweiten Update kam dann eine Ellenlange liste
sudo apt --fix-broken install $ iobroker url iobroker-community-adapters/ioBroker.rpi2 --host raspberrypi --debug install iobroker-community-adapters/ioBroker.rpi2 NPM version: 10.8.2 Installing iobroker-community-adapters/ioBroker.rpi2... (System call) > iobroker.rpi2@2.3.2 preinstall> sudo apt-get install -y libgpiod-dev || exit 0 Reading package lists... Building dependency tree... Reading state information... libgpiod-dev is already the newest version (1.6.3-1+b3).The following package was automatically installed and is no longer required: libcamera0.3Use 'sudo apt autoremove' to remove it. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. > node-dht-sensor@0.4.4 install> node-gyp configure gyp info it worked if it ends with okgyp info using node-gyp@10.1.0gyp info using node@20.18.2 | linux | arm64 gyp info find Python using Python version 3.11.2 found at "/usr/bin/python3" gyp info spawn /usr/bin/python3 gyp info spawn args [ gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',gyp info spawn args 'binding.gyp',gyp info spawn args '-f',gyp info spawn args 'make',gyp info spawn args '-I',gyp info spawn args '/opt/iobroker/node_modules/node-dht-sensor/build/config.gypi',gyp info spawn args '-I',gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',gyp info spawn args '-I',gyp info spawn args '/home/iobroker/.cache/node-gyp/20.18.2/include/node/common.gypi',gyp info spawn args '-Dlibrary=shared_library',gyp info spawn args '-Dvisibility=default',gyp info spawn args '-Dnode_root_dir=/home/iobroker/.cache/node-gyp/20.18.2',gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',gyp info spawn args '-Dnode_lib_file=/home/iobroker/.cache/node-gyp/20.18.2/<(target_arch)/node.lib',gyp info spawn args '-Dmodule_root_dir=/opt/iobroker/node_modules/node-dht-sensor',gyp info spawn args '-Dnode_engine=v8',gyp info spawn args '--depth=.',gyp info spawn args '--no-parallel',gyp info spawn args '--generator-output',gyp info spawn args 'build',gyp info spawn args '-Goutput_dir=.'gyp info spawn args ] gyp info ok > opengpio@1.0.17 install> node-gyp rebuild gyp info using node-gyp@10.1.0gyp info using node@20.18.2 | linux | arm64 gyp info find Python using Python version 3.11.2 found at "/usr/bin/python3" gyp info spawn /usr/bin/python3 gyp info spawn args '-I',gyp info spawn args '/opt/iobroker/node_modules/opengpio/build/config.gypi',gyp info spawn args '-I',gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',gyp info spawn args '-I',gyp info spawn args '/home/iobroker/.cache/node-gyp/20.18.2/include/node/common.gypi',gyp info spawn args '-Dlibrary=shared_library',gyp info spawn args '-Dvisibility=default',gyp info spawn args '-Dnode_root_dir=/home/iobroker/.cache/node-gyp/20.18.2',gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',gyp info spawn args '-Dnode_lib_file=/home/iobroker/.cache/node-gyp/20.18.2/<(target_arch)/node.lib',gyp info spawn args '-Dmodule_root_dir=/opt/iobroker/node_modules/opengpio',gyp info spawn args '-Dnode_engine=v8',gyp info spawn args '--depth=.',gyp info spawn args '--no-parallel',gyp info spawn args '--generator-output',gyp info spawn args 'build',gyp info spawn args '-Goutput_dir=.'gyp info spawn args ] gyp info spawn makegyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] CXX(target) Release/obj.target/opengpio/cpp/opengpio.o SOLINK_MODULE(target) Release/obj.target/opengpio.node COPY Release/opengpio.node make: Leaving directory '/opt/iobroker/node_modules/opengpio/build' gyp info ok > node-dht-sensor@0.4.4 postinstall> node-gyp build gyp info using node-gyp@10.1.0gyp info using node@20.18.2 | linux | arm64 gyp info spawn make CC(target) Release/obj.target/nothing/node_modules/node-addon-api/src/nothing.o rm -f Release/obj.target/node_modules/node-addon-api/src/nothing.a Release/obj.target/node_modules/node-addon-api/src/nothing.a.ar-file-list; mkdir -p `dirname Release/obj.target/node_modules/node-addon-api/src/nothing.a` ar crs Release/obj.target/node_modules/node-addon-api/src/nothing.a @Release/obj.target/node_modules/node-addon-api/src/nothing.a.ar-file-list CC(target) Release/obj.target/node_dht_sensor/src/bcm2835/bcm2835.o ../src/bcm2835/bcm2835.c: In function ‘bcm2835_init’: ../src/bcm2835/bcm2835.c:1818:84: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1818 | bcm2835_peripherals = mapmem("gpio", bcm2835_peripherals_size, memfd, (off_t)(uint32_t)bcm2835_peripherals_base); | ^../src/bcm2835/bcm2835.c:1851:84: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1851 | bcm2835_peripherals = mapmem("gpio", bcm2835_peripherals_size, memfd, (off_t)(uint32_t)bcm2835_peripherals_base); | ^ CXX(target) Release/obj.target/node_dht_sensor/src/node-dht-sensor.o CXX(target) Release/obj.target/node_dht_sensor/src/dht-sensor.o CXX(target) Release/obj.target/node_dht_sensor/src/util.o SOLINK_MODULE(target) Release/obj.target/node_dht_sensor.node COPY Release/node_dht_sensor.node make: Leaving directory '/opt/iobroker/node_modules/node-dht-sensor/build' gyp info ok added 7 packages in 1m155 packages are looking for funding run `npm fund` for details upload [13] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/de/translations.json i18n/de/translations.json application/json upload [12] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/en/translations.json i18n/en/translations.json application/json upload [11] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/es/translations.json i18n/es/translations.json application/json upload [9] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/it/translations.json i18n/it/translations.json application/json upload [8] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/nl/translations.json i18n/nl/translations.json application/json upload [7] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/pl/translations.json i18n/pl/translations.json application/json upload [6] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/pt/translations.json i18n/pt/translations.json application/json upload [5] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/ru/translations.json i18n/ru/translations.json application/json upload [3] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json upload [1] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/rpi2.png rpi2.png image/png upload [0] rpi2.admin /opt/iobroker/node_modules/iobroker.rpi2/admin/words.js words.js application/javascript Updating objects from io-package.json for adapter "rpi2" with version "2.3.2" Process exited with code 0
Die Ausgänge hab ich auf Ausgangsstellung 0 eingestellt.
Der Adapter schaltet jetzt ganz kurz alle Relais was auch wahrscheinlich früher so war und zeigt den Zustand dann auch richtig an. Ich wäre aus jetzigen Stand damit zufrieden. Werde morgen mal testen wie er sich bei Ausgangsstellung 1 oder nur Ausgang verhält und es dir melden.
Vielen, vielen Dank schon mal.
LG HorstPS: Mit meinem Update auf Bookworm wäre ich dann nach 4 Tagen (40Stunden) bis auf den SPI durch.
SPI brauch ich für meine Feuchtigkeitsfühler. Am leichtesten war das IoBroker Update. Am längsten hat der eBus gedauert.
Hab jetzt alles Dokumentiert;-). Ist jetzt nur noch SPI offen dann hab ichs geschafft.
Edit9.02.2025 > Bin leider noch nicht zum Testen von Input, Anfang1 und Ausgang gekommen mach das aber noch!!!
Komme abar mit SPI grad leider überhaupt nicht weiter, unter bookworm und 64bit hat sich alles geändert. Wenn jemand weiß wie ich da weiter komme wäre ich für jede Hilfe dankbar. Auch wiringpi gibt es scheinbar nicht mehr.
Hab neuen Thread "MCP3008 in IoBroker einbinden" angelegt. -
Hallo Garfonso,
die 2.3.2 habe ich nun an meinen 8 Ausgängen und 6 Eingängen getestet und bin für meine Anwendungen mit Ausgang, Ausgangswert 0 absolut zufrieden. Beim Hochfahren werden kurz alle Relais ein- und ausgeschaltet und damit kann ich leben. Die Anzeige in den Objekten ist danach korrekt.
Dann habe ich alle Ausgang, Ausgangswert 1 eingestellt. Rpi2 startet neu und alle Relais sind eingeschaltet.
Auch hier ist die Anzeige in den Objekten und der VIS korrekt.Ich habe dann alle auf Ausgang, Ausgang gestellt und 4 Relais ein und 4 ausgeschaltet.
Nach Neustart von Rpi2 wurden diese in den Objekten und in VIS richtig angezeigt.
Allerdings war es so, dass alle Relais angezogen haben. Die im Objekt eingeschalteten Relais konnte über VIS sofort ausgeschaltet werden. Die als "aus" angezeigten Ausgänge waren ein und mussten über die VIS erst ein- (nix passiert) und dann ausgeschaltet werden. Dann passt wieder alles.Die Eingänge habe ich mit 200ms entprellt. Ab und zu reagieren diese noch immer beim Einschalten von induktiven Lasten in unmittelbarer Nähe wie z.B. Trafo für die Gartenventile und Leuchtstoffröhre. Ist aber für meine Anwendung "3min Wasser vorm Haus nach Tastendruck" nicht problematisch.
Gibt es für die Eingänge schon Werte die man als Standard annehmen kann. Ich konnte mit 100ms und 200ms noch keine Unterschiede feststellen. Habe auch in meinen Script noch entprellt.Vielen Dank nochmal für die schnelle Bereitstellung der 2.3.2.
LG Horst
-
@Garfonso
Habe jetzt auf die 2.3.2 upgedatet (RPI 4). 4 Relaisausgänge. Bei meiner Relaisbaugruppe sind die Relais gezogen, wenn der Ausgang auf "false" steht. 2 Ausgänge "false", 2 Ausgange "true2. RPI reboot. Nach dem Reboot sind alle Relais abgefallen. Ist für mich wichtig.
In den Objekten verbleiben die Statusanzeigen, wie Sie vor dem Reboot waren. Erst nach hin und herschalten passen die Statusanzeigen. Und die Relais schalten auch erst nach einmal hin und her schalten. Hin und her = Ein/Aus.
Relais Aus: Objektanzeige "True". Wenn ich ein Relais Einschalten will, muß ich einen Doppelimpuls absenden. Da die Statusanzeige in den Objekten nicht passt, kann ich Die auch nicht vor dem Schaltvorgang sinnvoll abfragen. Browser aktualisieren bringt auch nichts. -
Das ist aber komisch jetzt!
Meine Relais sind nach einem Reboot bei Ausgang=0 immer aus (bis auf das ms kurze ein/aus beim Start)
Bei Ausgang=0 werden nach dem Reboot alle Relais eingeschaltet.Wird bei den Instanzen nur Ausgang ohne 0 oder 1 eingestellt so bleibt es beim letzten Status der Objekte aber alle Relais sind nach Reboot eingeschaltet.
Die im Objekt mit True gekennzeichneten kann ich sofort mit False ausschalen.
Die im Objekt mit False gekennzeichneten muss ich erst auf True umschalten und dann wieder auf False.
Erst dann werden die Relais ausgeschaltet.Aus meiner Sicht ist nur noch was falsch wenn er nach einem Reboot den letzten Stand wieder herstellen soll.
Wird ev. auf deiner Relaiskarte etwas invertiert?
Wenn der Raspie aus ist oder im Bootmodus sind dann deine Relais ein? -
@hasont Ja, nur nach dem Reboot des Raspi ist das noch nicht optimal gelöst. Meine Relaiskarte läßt das Relais ziehen - Low-aktiv.
Ist halt so gewesen, bei dieser Karte. -
Das Problem kenn ich weil da Rasperry und Arduino/DSP anders ist und die meisten Relaiskarten eben für Arduino gebaut werden. Du bist also bis auf den letzten Status vor einem Reboot der nicht stimmt auch zufrieden!
-
@hasont Ja. Die Statusanzeige wäre schon wichtig.
-
@laser
Bei Ausgängen hat der state dasread
flag auffalse
stehen, das heißt, der Wert, der da drin steht, ist unbedeutend. So ist der Adapter bisher auch implementiert, wenn ein GPIO als "Ausgang" definiert ist, wird dessen Status nicht gelesen und auch nicht im ioBroker aktualisiert.Ob es dafür einen tieferen Grund gibt, oder nicht, weiß ich nicht. Ich kann mal versuchen einzubauen, dass der Wert beim starten gelesen wird und die state-Datenbank entsprechend aktualisiert.
@laser said in Test Adapter rpi2 2.x:
Wenn ich ein Relais Einschalten will, muß ich einen Doppelimpuls absenden.
Bist du da sicher? Soweit ich den Code im Kopf habe, würde auch ein "true" setzen, obwohl der state schon auf true ist, trotzdem den GPIO versuchen einzuschalten. (wie das jetzt mit einer Visualisierung ist, ist nochmal ein anderes Thema... eigentlich ist das für den Ausgang halt nur ein Taster ohne Zustand).
Ich habe selber auch überlegt, ob das nicht sinnvoll wäre nach einem adapter neustart die states aus iobroker auszulesen und die GPIOs entsprechend zu setzen. Vielleicht erweitere ich dafür einfach die tabelle und mach einen "restore" Wert dazu.
-
@garfonso Ja, wenn ich ohne den Satus zu beachten den Befehl absende, wird er ausgeführt. Werde ich nach dem nächsten Reboot erneut prüfen.
Ich habe mich da vom Status in den Objekten verwirren lassen.