diff --git a/autoActions/autoaction_runner.py b/autoActions/autoaction_runner.py index d7d87ea..9f73ffd 100644 --- a/autoActions/autoaction_runner.py +++ b/autoActions/autoaction_runner.py @@ -718,6 +718,7 @@ class Runner: return self._sonne[1], self._sonne[2] auf, unter = "00:00", "00:00" try: + self.solar.ping(reconnect=True) # re-establish connection if it dropped with self.solar.cursor() as c: c.execute("SELECT sunrise, sunset FROM daylight WHERE date = %s", (heute,)) zeile = c.fetchone() @@ -727,7 +728,7 @@ class Runner: else: logger.warning("Kein Eintrag in daylight fuer %s", heute) except Exception as fehler: - logger.warning("Sonnenzeiten nicht lesbar: %s", fehler) + logger.warning("Sonnenzeiten nicht lesbar: %r", fehler) self._sonne = (heute, auf, unter) return auf, unter @@ -752,7 +753,7 @@ class Runner: if zeile: stand = {"feiertag": bool(zeile["holiday"]), "ferien": bool(zeile["vacation"])} except Exception as fehler: - logger.warning("Kalender nicht lesbar: %s", fehler) + logger.warning("Kalender nicht lesbar: %r", fehler) self._kalender = (heute, stand) return stand @@ -816,7 +817,7 @@ class Runner: self.geschrieben[state_id] = wert self.geschrieben_um[state_id] = jetzt except Exception as fehler: - logger.warning("current_value nicht schreibbar: %s", fehler) + logger.warning("current_value nicht schreibbar: %r", fehler) # --- Ausfuehren ------------------------------------------------------ @@ -865,7 +866,7 @@ class Runner: c.execute("""INSERT INTO automation_log (automation_id, result, detail) VALUES (%s, %s, %s)""", (automatik["id"], ergebnis, detail)) except Exception as fehler: - logger.warning("Protokoll nicht schreibbar: %s", fehler) + logger.warning("Protokoll nicht schreibbar: %r", fehler) automatik["last_run"] = datetime.now() self.lief_im_fenster[automatik["id"]] = True @@ -899,7 +900,7 @@ class Runner: c.execute("""UPDATE automations SET cond_met = %s, changed = changed WHERE id = %s""", (automatik["cond_met"], automatik["id"])) except Exception as fehler: - logger.warning("cond_met nicht schreibbar: %s", fehler) + logger.warning("cond_met nicht schreibbar: %r", fehler) def durchlauf(self, fenster=NACHHOLFENSTER): jetzt = datetime.now() @@ -979,7 +980,7 @@ class Runner: c.execute("DELETE FROM automation_log WHERE ts < NOW() - INTERVAL %s DAY", (LOG_AUFBEWAHRUNG_TAGE,)) except Exception as fehler: - logger.warning("Protokoll nicht aufraeumbar: %s", fehler) + logger.warning("Protokoll nicht aufraeumbar: %r", fehler) # --- Hauptschleife --------------------------------------------------- @@ -1012,7 +1013,7 @@ class Runner: logger.info("Regelwerk hat sich geaendert, wird neu geladen") self.regelwerk_laden() except Exception as fehler: - logger.warning("Regelwerk nicht pruefbar: %s", fehler) + logger.warning("Regelwerk nicht pruefbar: %r", fehler) if nur_einmal: return diff --git a/logrotate.conf b/logrotate.conf index cf5d588..8c9c947 100644 --- a/logrotate.conf +++ b/logrotate.conf @@ -24,14 +24,14 @@ /volume1/homes/wagner/SolarManager/wsMQTTbridge.log /volume1/homes/wagner/SolarManager/wecker.log { - daily + monthly # Zwei Wochen zurueck. Weiter zurueck hat noch nie jemand gesucht, und # was aelter ist, steht ohnehin als Messwert in der Datenbank. rotate 14 # Zusaetzlich zur Tagesgrenze: was ueber 20 MB geht, wird sofort # rotiert. Sonst koennte ein Prozess, der in eine Fehlerschleife # geraet, an einem einzigen Tag das Volume fuellen. - maxsize 20M + maxsize 10M compress # Eine leere Datei zu rotieren bringt nichts ausser vierzehn leeren # Archiven - der Wecker meldet an den meisten Tagen gar nichts.