Ankündigung

Einklappen
Keine Ankündigung bisher.

GPIO Plugin: Fehler im Eingangskanal

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    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.

    Kommentar


      #17
      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.

      Kommentar


        #18
        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

        Kommentar


          #19
          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.

          Kommentar


            #20
            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 ⚜

            Kommentar


              #21
              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.

              Kommentar


                #22
                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

                Kommentar


                  #23
                  Wie ist deine Konfiguration? Plugin, Items, ...?

                  Kommentar


                    #24
                    Moin! Das Item sieht so aus:
                    Code:
                    Eingang_Bewegung_Halle:
                        type: bool
                        visu_acl: rw
                        gpio_in: 16
                    und das Plugin ist so konfiguriert:
                    Code:
                    GPIO:
                    plugin_name: gpio
                    mode: BCM
                    pullupdown: down

                    Kommentar


                      #25
                      Ich habe bei den Items auch schon diverse Versuche unternommen mit
                      Code:
                      gpio_invert: True
                      oder
                      Code:
                      gpio_pud: down
                      . Hat alles nicht verändert.

                      Kommentar


                        #26
                        Wie sind die Inputs denn verschaltet?

                        Kommentar


                          #27
                          Ich hab die Inputs, sowohl auf Masse als auch auf 3,3V gelegt und verschiedenste Varianten durchprobiert. Ich denke, dass ich es einfach mit einem externen Widerstand versuchen muss. Wenn ich es allerdings über die Konsole mit pigpio versuche, funktioniert es einwandfrei auch ohne externen Widerstand. Es scheint wirklich ein Problem des Plugins zu sein.

                          Kommentar


                            #28
                            Schuetti Du hast aber schon das Recht auf die GPIO dem User unter dem SmartHomeNG läuft eingeräumt, oder?

                            Also sowas wie
                            Code:
                            sudo usermod -a -G smarthome,gpio smarthome

                            Kommentar


                              #29
                              Das habe ich noch nicht getan, habe es jetzt versucht und es ändert leider nichts. Smarthomeng wird auch als user "smarthome" ausgeführt. Ein Neustart brachte auch keinen Erfolg. Gibt es eine Möglichkeit, auszulesen, welche Rechte für den Ordner vergeben sind? Ich versuche mich da gerade einzuarbeiten, aber einige Kenntnisse im Umgang mit Linux fehlen mir da leider.

                              Kommentar


                                #30
                                Zitat von Schuetti Beitrag anzeigen
                                Es scheint wirklich ein Problem des Plugins zu sein.
                                Darum können wir dir - wildes Raten ausgenommen - auch nur helfen, wenn du deine Konfiguration postest. Oder ist die geheim?

                                Bei mir läuft es. Also liegt es nicht (nur) am Plugin.


                                Kommentar

                                Lädt...
                                X