Ankündigung
Einklappen
Keine Ankündigung bisher.
GPIO Plugin: Fehler im Eingangskanal
Einklappen
X
-
Ich habe bei den Items auch schon diverse Versuche unternommen mitoderCode:gpio_invert: True
. Hat alles nicht verändert.Code:gpio_pud: down
Einen Kommentar schreiben:
-
Moin! Das Item sieht so aus:
und das Plugin ist so konfiguriert:Code:Eingang_Bewegung_Halle: type: bool visu_acl: rw gpio_in: 16
Code:GPIO: plugin_name: gpio mode: BCM pullupdown: down
Einen Kommentar schreiben:
-
Moin!
Ich hole den Thread hier nochmal raus: Ich habe das gleiche Problem: GPIO_inputs schalten die flanken bei Kontakt willkürlich. Außerdem funktionieren die Itemattribute gpio_invert, gpio_init und gpio_pud auch nicht. Egal was ich verändere, die Relais müssen immer auf true gesetzt werden, damit sie abfallen. Bei jedem Neustart ziehen sie dann einmal an. Da ich damit ein Tor steuern möchte, äußerst unpraktisch. Hat noch jemand ne Idee? Vielleicht ne andere Relaiskarte, die nur bei high schaltet? Aber das muss doch irgendwie zu lösen sein...
Beste Grüße
Christoph
Einen Kommentar schreiben:
-
Dann würde mich mal dein aktuelles Log (mit pullupdown: updown) interessieren - das gibt es nämlich nicht, default ist "up", auch bei ungültigen Werten ("updown").
Kannst du nochmal beschreiben, wie genau der Eingangspin beschaltet ist? Ich vermute, dass die Beschaltung und pullupdown nicht zusammenpasst...
Deine Vermutung ist - Programmierfehler ausgenommen - falsch
pullupdown steuert die interne Beschaltung bzw. Auswertelogik der IN-Pins (siehe auch https://de.wikipedia.org/wiki/Pullup-Widerstand).
Flankenerkennung hat damit nichts zu tun, auch wenn man die zusätzlich definieren könnte (Plugindatei __init__.py, Zeile 115, "PiGPIO.BOTH" heißt "beide Flanken", also steigend und fallend). Das bietet das GPIO-Plugin aber derzeit nicht an.
Einen Kommentar schreiben:
-
Ursache gefunden, Problem gelöst!
@Morg: Du hast mich auf eine Idee gebracht: Statt up oder down im Parameter "pullupdown" einzutragen, habe ich es mit "updown" probiert. Jetzt reagiert es auf beide Flanken. Da muss man erstmal dhinter kommen ⚜
Einen Kommentar schreiben:
-
Ja, sorry ist ein Tippfehler. Die Parameter habe ich über das Admin Interface eingetragen und so nichts an der Parameterbezeichnung verändert. Das Startlog sieht wie folgt aus:
2020-07-14 09:33:54 WARNING __main__ -------------------- Init SmartHomeNG 1.7.2.master (3828810e) --------------------
2020-07-14 09:33:54 WARNING __main__ Running in Python interpreter 'v3.7.3 final' on Linux-4.19.118-v7+-armv7l-with-debian-10.4 (pid=14988)
2020-07-14 09:33:55 WARNING lib.shtime Nutze Feiertage für Land 'DE', Provinz 'BW', State '', 1 benutzerdefinierte Feiertagsdefinition(en) definiert
2020-07-14 09:34:04 WARNING lib.item load_itemdefinitions(): For testing the joined item structs are saved to /usr/local/smarthome/etc/structs_joined.yaml
2020-07-14 10:34:06 INFO plugins.gpio Adding event detection for input pin 22, initial value is True
2020-07-14 10:34:06 INFO plugins.mqtt _start_subscription: Subscribing to topic pool/wasserfall/schalten, payload_type 'bool' for item Pool.Wasserfall.Schalten (callback=<bound method MqttPlugin._on_mqtt_message of <plugins.mqtt.Mqtt2 object at 0x685b1b90>>)
2020-07-14 10:34:06 INFO plugins.mqtt _start_subscription: Subscribing to topic pool/zulaufsteuerung/schalten, payload_type 'num' for item Pool.Zulaufsteuerung.Schalten (callback=<bound method MqttPlugin._on_mqtt_message of <plugins.mqtt.Mqtt2 object at 0x685b1b90>>)
2020-07-14 10:34:06 INFO plugins.gpio Read pin 22 with value 1 after event_detection
2020-07-14 10:34:07 INFO plugins.gpio Read pin 22 with value 1 after event_detection
2020-07-14 10:34:07 INFO plugins.gpio Read pin 22 with value 1 after event_detection
2020-07-14 10:34:08 INFO plugins.gpio Read pin 22 with value 1 after event_detection
2020-07-14 10:34:09 INFO plugins.gpio Read pin 22 with value 1 after event_detection
2020-07-14 10:34:09 INFO plugins.gpio Read pin 22 with value 1 after event_detection
2020-07-14 10:34:10 INFO plugins.gpio Read pin 22 with value 1 after event_detection
2020-07-14 10:34:18 INFO plugins.database remove_older_than_maxage: Worklist filled with 10 items
so wie es scheint, wird nur das Event für das Schalten auf "1" erkannt.
Einen Kommentar schreiben:
-
In der Hoffnung, dass es keine copy-and-paste-Fehler ist: der Parameter heißt "pullupdown", nicht "pulldown". Hast du den in der plugin.yaml korrekt eingetragen?
Ggf. kannst du ja mal ein Debug-Log vom Start von shng.py posten, idealerweise mit zwei oder drei Änderungen am Eingangspegel.
Gerade, dass das mit einem zweiten RPi genauso nicht geht, lässt mich auf eine erfolgreiche Fehlersuche hoffen
Einen Kommentar schreiben:
-
Hallo Morg,
ja ich habe ein anderes Raspi 2b installiert. Dort habe ich das gleiche Problem. Komischerweise funktioniert der Eingang unter wiringpi einwandfrei. ich kann jede Änderung am Eingang sofort sehen. In im gpio Plugin in smathomeng wird der Wert einmal beim Klicken des Schalters geändert, dann ist keine weitere Änderung mehr möglich. Die Relais lassen sich perfekt über die gpio Ausgänge schalten.
Die Konfig des gpio Plugin ist:
mode: board
bouncetime: 300
pulldown: up
irgendwas scheint hier leider nicht zu passen.
Einen Kommentar schreiben:
-
Hallo Morg, nein leider bisher noch nicht. Bin gerade nicht zuhause aber RPi 4 ist bestellt. Werde es mal damit probieren. Wird aber noch etwas dauern.
Einen Kommentar schreiben:
-
@aschwith: Danke fürs Finden, das habe ich tatsächlich übersehen.
Leider hilft das Tobias wohl nicht, da gab es ja Probleme mit dem Eingang.
@Tobias: Hast du etwas rausfinden können?
Einen Kommentar schreiben:
-
Mit einem der letzten Commits wurde ein Fehler in das GPIO plugin gebracht, welches dazu geführt hat, dass GPIO out pins nicht mehr korrekt gesetzt worden sind. Der Fehler ist jetzt behoben. Fix liegt im Develop branch.
Einen Kommentar schreiben:
-
Habe gerade nen RPi1 Mod B mit 8-Kanal Relais und 4 Eingängen auf GPIO aufgesetzt, da hat das funktioniert. Wundert mich, dass das auf jedem Eingang so ist. Würde mich eher auf ein systemisches Problem tippen lassen als auf einen - oder zufällig viele - kaputte Kanäle im GPIO...
Sind da ggf. noch Treiber geladen? I2C, SPI, Onewire,...? Kannst du ggf. in raspi-config prüfen.
Einen Kommentar schreiben:
-
Ja, das hatte ich alles schon ausprobiert. Leider immer derselbe Effekt. Vielleicht liegt es an meinem Raspi. Werde es mal mit einem neueren Modell probieren.
Einen Kommentar schreiben:


Einen Kommentar schreiben: