Python shutdown script ändern !?

Begonnen von Tom111, 14 August 2015, 21:55:24

Vorheriges Thema - Nächstes Thema

Tom111

Hallo,
erst einmal vorweg, ich habe keine Ahnung von Python und werde nun das erste mal mit dieser Programmiersprache konfrontiert, ich bitte also um Nachsicht!

Folgendes Problem:
ich betreibe meinen Raspberry Pi über die hausinterne USV-Anlage um vor Spannungsausfällen geschützt zu sein; da die USV aber nicht ewig hält, habe ich über eine
Netzsteckdose die nicht über die USV läuft und einem Relai´s als Schalter einen GPIO Port angeschlossen (GPIO4 Pin), so, dass wenn das Netz ausfällt der Raspberry Pi runter fährt
über das unten angegebene Script.

# shutdown script for Raspberry Pi
import RPi.GPIO as GPIO
import os
import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(13, GPIO.OUT)
GPIO.output(13, True)
GPIO.setup(7, GPIO.IN)

while True:
        if not (GPIO.input(7)):
                GPIO.output(13, False)
                time.sleep(.1)
                GPIO.output(13, True)
                time.sleep(.1)
                GPIO.output(13, False)
                time.sleep(.1)
                GPIO.output(13, True)
                os.system("sudo shutdown -h now")
        time.sleep(.5)


Das Script funktioniert soweit.
Ich hätte aber gerne dass bei Netzausfall, also wenn das Relai´s abgefallen ist und den Kontakt schließt (Relai´s Öffner; low-Level an GPIO4 Pin) eine von mir vorgegebene Zeit gewartet wird
bis der Pi runterfährt, sollte vor Ablauf der Zeit das Netz wieder da sein (also GPIO4 Pin wieder high-Level), sollte nichts passieren und die Zeit sollte wieder auf 0 gesetzt werden.

Kann mir da ein Experte evtl. solch eine Zeitstufe in das Script einfügen, denn ich weiß nicht wie ich das anstellen soll.

Gruß
Tom
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

Puschel74

Frag den GPIO per Fhem ab -da gibt es sogar ein Modul dafür.
Dann kannst du per at den RasPi runter fahren oder eben nicht und du brauchst dich nicht mit einer weiteren Sprache rumschlagen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Tom111

Zitat von: Puschel74 am 15 August 2015, 10:16:36
Frag den GPIO per Fhem ab -da gibt es sogar ein Modul dafür.
Dann kannst du per at den RasPi runter fahren oder eben nicht und du brauchst dich nicht mit einer weiteren Sprache rumschlagen.
Ja, danke für diesen Vorschlag, aber genau DAS möchte ich nicht! Ich möchte den Raspberry Pi so unabhängig wie möglich von einem Programm runterfahren können! Der von mir im Netz gefundene Code ist ja schon ausreichend, ich möchte halt nur den Zusatz der Zeit eingebaut haben.
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V