Seite 1 von 1

Tageswechsel erkennen

Verfasst: Dienstag 23. Februar 2021, 07:01
von Omm
Hallo zusammen

ich auf der suche nach einer mod mit der ich einen Tageswechsel erkenne.
D.h. Das tool läuft normal--> pc geht in hyermode-->nächster Tag, den pc hochfahren und dann eine Aktion durchführen.
Was nicht auf Anhieb ging sind apscheduler, Datetime. Evtl. lags auch an mir.

Code: Alles auswählen

self.scheduler.add_job(self.check_daychanges, 'interval', minutes=1)

 def check_daychanges(self):
        print(datetime.datetime.now().strftime('%d.%m.%Y %H:%M:%S'))
        self._dm.check_daychanges(datetime.datetime.now().date())

def check_daychanges(self, _last_valid_powerstate_datetime=None):
     if _last_valid_powerstate_datetime == datetime.datetime.now().date():
       print('--same day--', _last_valid_powerstate_datetime, '---', datetime.datetime.now().date())
          self.zeitmerken = datetime.datetime.now().strftime('%d.%m.%Y %H:%M:%S')
      else:
          # not the same day since suspend
          print('new day','------')

Re: Tageswechsel erkennen

Verfasst: Dienstag 23. Februar 2021, 07:51
von Sirius3
Du rufst check_daychanges mit _last_valid_powerstate_datetime = datetime.datetime.now().date() auf, und vergleichst diesen Wert mit datetime.datetime.now().date(). Wie kannst Du da erwarten, dass etwas anderes als True rauskommt?
Der _ deutet an, dass _last_valid_powerstate_datetime gar nicht genutzt wird, was ist verwirrend.

Re: Tageswechsel erkennen

Verfasst: Dienstag 23. Februar 2021, 20:04
von Omm
@Sirius3 hast recht, stand da wohl auf dem Schlauch, auch die Namensgebung ist nicht wirklich gut. Danke
Mir ist aber nicht klar, ob dies so der richtige Weg ist. Evtl. gibt es da grundsätzlich bessere Lösungen.
Im Netz bin ich noch auf "typing Callable" gestossen. Kennst du das Modul

Re: Tageswechsel erkennen

Verfasst: Dienstag 23. Februar 2021, 20:15
von __deets__
Die Loesung besteht darin, alle Aktionen sofort zu persistieren, also zB in einer Datenbank. Damit hast du dann deinen letzten Zeitstempel. Den Tagewechsel kann man zB einfach mit dem Wochentag bestimmen, wenn der unterschiedlich ist, muss es einen Wechsel gegeben haben.

Re: Tageswechsel erkennen

Verfasst: Dienstag 23. Februar 2021, 20:35
von Omm
ok, jetzt verstehe ich. Auch wenn ich "persistieren" im Duden nachschlagen musste. :-)

Vielen Dank