Forum >> Programmazione Python >> Scripting >> Script per schedulazione chiusura automatica

Pagina: 1

Ciao a tutti! Sono niubbissimo di Python e questa è la mia prima applicazione. Serve per chiudere automaticamente una serranda ad un determinato orario, la chiusura può pero essere posticipata premendo un pulsante (parte da implementare con i GPIO di raspberry). Sicuramente avrei bisogno di qualche consiglio sulla scrittura del codice, ma mi chiedo il perchè non funzioni o meglio perchè se l'avvio da pycharm e imposto l'orario di chiusura l'applicazione non chiude?
import datetimefrom datetime 
import timedelta
import time
import schedule

def chiudi():
    serranda_down_PL = requests.get('http://192.168.1.2:8080/status.xml?pl3=1')
    time.sleep(180)
    luci_PL = requests.get('http://192.168.1.2:8080/status.xml?pl2=1')

def apri():
    serranda_up = requests.get('http://192.168.1.2:8080/status.xml?pl4=1')

def portiere():
    bottone_count = 1  # contatore di quante volte è stato premuto il pulsante da integrare con moduloGPIO
    now = datetime.datetime.now()  # ora attuale
    t = now.time()
    x = t.strftime("%X")  # estrapolazione dell'ora in formato xx:xx
    ora_chiusura = datetime.time(19,40,00)
    ritardo_chiusura = datetime.timedelta(minutes=20)
    t1 = ora_chiusura.strftime ( "%H"':'"%M" )
    while bottone_count == 0:
        return t1
    while bottone_count >= 0 and bottone_count <= 3:  # ogni volta che il bottone viene premuto incrementa il ritardo di
        # chiusura di  minuti = d4
        t3 = datetime.datetime.combine(datetime.date(1,1,1), t)+ ritardo_chiusura
        print(type(t3))
        t4 = t3.strftime("%H"':'"%M")
        return t4
        while bottone_count > 3:
            return t4

def chiusura_automatica():
    def job():
        chiudi()
    def job2():
        apri()


    schedule.every().day.at(portiere()).do(job)
    schedule.every().day.at("7:50").do(job2)

    while True:
        schedule.run_pending()



--- Ultima modifica di emanuel_b in data 2018-12-03 20:11:32 ---
Ciao caro, semplifica tutto e lascia solo la parte in cui chiudi la saracinesca. Per la schedulazione usa cron che all'orario stabilito ti farà partire lo script.

Almeno io farei così, evitando un sacco di problemi.

Cya
Allora ho seguito il consiglio di Daniele ed analizzato tutto il codice isolando e i problemi ad un ad uno. Beh, errore mio, lo script che ho postato funziona l’errore si trovava nella parte non ancora implementata del bottone_count: impostandolo a zero il programma va alla grande. Sicuramente sarà da migliorare... questione di tempo ;).
Allora ho seguito il consiglio di Daniele ed analizzato tutto il codice isolando e i problemi ad un ad uno. Beh, errore mio, lo script che ho postato funziona l’errore si trovava nella parte non ancora implementata del bottone_count: impostandolo a zero il programma va alla grande. Sicuramente sarà da migliorare... questione di tempo ;).
Bravissimo, trovare la soluzione da soli è sempre la cosa più appagante che ci sia.

Happy coding.



Pagina: 1



Esegui il login per scrivere una risposta.