RPI_GPIO funktioniert irgendwie nicht?

carsten_h

Well-known member
Moin!

Ich habe hier ein Argon One M.2 Gehäuse mit einem Pi 4 4GB un darauf läuft Home Assistant OS 9.4 mit allen neuen Versionen.
Installiert über HACS ist "Raspberry Pi GPIO", da das ja seit letztem Jahr nicht mehr in Home Assistant OS enthalten ist.
Als GPIO noch in Home Assistant OS enthalten war, funktionierte das auch wunderbar.

Das brauche ich für den Button vom Argon One Gehäuse, denn der soll durch Drücken (es geht nur mit zweimaligem Drücken) das Home Assistant OS herunterfahren.
Dazu habe ich folgendes in der configuration.yaml eingetragen:
Code:
binary_sensor:
  - platform: rpi_gpio
    sensors:
      - port: 4
        name: "Argon One Power Button"
        unique_id: "argon_one_power_button"
        pull_mode: "DOWN"

Dazu habe ich noch folgende Automatisierung:
Bildschirm­foto 2023-01-13 um 13.08.19.png

Da ich das lange nicht mehr ausprobiert habe, weiß ich nicht, warum nichts mehr passiert.
Es gibt auf jeden Fall den sensor:
Bildschirm­foto 2023-01-13 um 13.09.27.png
nur steht der immer auf "off", es tut sich einfach nichts mehr.

Hat das noch jemand in Betrieb, bei dem das funktioniert oder auch nicht funktioniert? Hat jemand eine Idee, warum das nicht funktioniert?
 
Wie ist den dein Taster am RPi angeschlossen
pull_mode: "DOWN"

bedeute ja dein Eingang wird auf Ground gezogen beim inizalisieren, macht man eigentlich eher über pull_mode: "PU" damit der Eingang HIGH ist und zieht ihm beim schalten auf LOW, das könnte schon dein Problem sein.
 
Wie ist den dein Taster am RPi angeschlossen
Das weiß ich nicht. Das ist ja auf der Platine vom Argon One Gehäuse. Ich meine aber, daß ich damals extra in den Scripts von Argon (für Raspberry Pi OS) nachgesehen habe wie der Taster angebunden ist und wie er dort abgefragt wird.

Hier ist der Teil aus dem Script, das das Script erzeugt:
Bash:
echo 'shutdown_pin=4' >> $powerbuttonscript
echo 'GPIO.setup(shutdown_pin, GPIO.IN,  pull_up_down=GPIO.PUD_DOWN)' >> $powerbuttonscript

Der weitere Teil sieht dann so aus (es wird dann also auf eine steigende Flanke und ein High gewartet):
Bash:
echo 'def shutdown_check():' >> $powerbuttonscript
echo '    while True:' >> $powerbuttonscript
echo '        pulsetime = 1' >> $powerbuttonscript
echo '        GPIO.wait_for_edge(shutdown_pin, GPIO.RISING)' >> $powerbuttonscript
echo '        time.sleep(0.01)' >> $powerbuttonscript
echo '        while GPIO.input(shutdown_pin) == GPIO.HIGH:' >> $powerbuttonscript
echo '            time.sleep(0.01)' >> $powerbuttonscript
echo '            pulsetime += 1' >> $powerbuttonscript
echo '        if pulsetime >=2 and pulsetime <=3:' >> $powerbuttonscript
echo '            os.system("reboot")' >> $powerbuttonscript
echo '        elif pulsetime >=4 and pulsetime <=5:' >> $powerbuttonscript
echo '            os.system("shutdown now -h")' >> $powerbuttonscript
 
Zuletzt bearbeitet:
OK, laut script reagiert der Pin4 auf rising high, somit wäre ein PULL_DOWN korrekt,

echo 'shutdown_pin=4' >> $powerbuttonscript
echo 'GPIO.setup(shutdown_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)' >> $powerbuttonscript

echo 'def shutdown_check():' >> $powerbuttonscript
echo ' while True:' >> $powerbuttonscript
echo ' pulsetime = 1' >> $powerbuttonscript
echo ' GPIO.wait_for_edge(shutdown_pin, GPIO.RISING)' >> $powerbuttonscript
echo ' time.sleep(0.01)' >> $powerbuttonscript
echo ' while GPIO.input(shutdown_pin) == GPIO.HIGH:' >> $powerbuttonscript

?? -> läuft bei dir zufällig das Argon AddOn mit der I²C anbindung?
wenn Ja -> schau mal in deinem Log nach ob dies nicht Probleme verursacht.

EDIT:
du könntest auch versuchen dies zu verwenden

state_pull_mode: "DOWN"
anstelle von
pull_mode: "DOWN"
 
Das ist das Script von Argon, das ich in der Home Assistant Installation natürlich nicht verwende.
-> läuft bei dir zufällig das Argon AddOn mit der I²C anbindung?
Ja sicher.
schau mal in deinem Log nach ob dies nicht Probleme verursacht.
Nein, das ist ja auch I2C und nicht GPIO.
Das lief immer beides zusammen.

state_pull_mode: "DOWN"
anstelle von
pull_mode: "DOWN"
Das werde ich testen. Danke!
 
war ein Versuch wert.
Ja, es kommt dann leider das hier:
Code:
547066890224] The system cannot restart because the configuration is not valid: Invalid config for [binary_sensor.rpi_gpio]: [state_pull_mode] is an invalid option for [binary_sensor.rpi_gpio]. Check: binary_sensor.rpi_gpio->sensors->0->state_pull_mode. (See ?, line ?).
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.378
Beiträge
45.211
Mitglieder
3.976
Neuestes Mitglied
calibra52
Zurück
Oben