Autor Thema: Python Hilfe GPIOZERO nur bei Button-Druck "auslösen"  (Gelesen 197 mal)

Offline Suner

  • Jr. Member
  • **
  • Beiträge: 52
Python Hilfe GPIOZERO nur bei Button-Druck "auslösen"
« am: 26 März 2019, 13:07:54 »
Hallo zusammen,
ich bin dabei ein Script für meinen Gaszähler zu basteln.
dafür habe ich HW technisch einen induktiveren Näherungssensor an meinem RPI angeschlossen.
Der Gaszähler G4 RF1 c gibt pro 0,01 kbm Gasverbrauch einen Impuls aus. Der Impuls kommt immer genau nach 0,01 und geht dann weiter, es sei denn es wird genau beim Impuls kein Gas mehr verbraucht, dann bleibt der Sensor aktiv.

habe dann folgendes Script beastelt.. erst mal zum reinen Test des Impulses:

from gpiozero import Button
import datetime
import time
from time import sleep

from time import sleep

button = Button(4)

while True:
        button.wait_for_press()
        datetime.datetime.now().strftime("%a, %d %B %Y %H:%M:%S")
        print(datetime.datetime.now())
        sleep(2)
        print("The button was pressed!")

Das funktioniert sehr gut, es sei denn, der Gaszähler bleibt an der Stelle hängen wo der Impuls dann dauerhaft kommt. dadurch wird ununterbrochen "The button was pressed!" ausgegeben.
Hat jemand da eine Idee wie ich das abfangen kann? mich Interessiert ja eigentlich gar nicht der Zustand des Sensors sondern nur der Zustandswechsel von Released zu pressed.


Ich hoffe mein Problem wird klar und es gibt jemanden der mir helfen kann :(

Danke im Voraus

und Gruß
Suner

Offline Suner

  • Jr. Member
  • **
  • Beiträge: 52
Antw:Python Hilfe GPIOZERO nur bei Button-Druck "auslösen"
« Antwort #1 am: 27 März 2019, 07:46:38 »
Ich habe glaube ich selber eine Lösung gefunden mit "wait_for_release"

while True:
        button.wait_for_press()
        datetime.datetime.now().strftime("%a, %d %B %Y %H:%M:%S")
        print(datetime.datetime.now())
        sleep(5)
        print("UND wieder ein m3 mehr Gas verbraucht - Script ausfuehren")
        IpsRpc("IPS_RunScript", [30670])
        button.wait_for_release()