-- =========================================================================== -- Vorabend: Wochentage, Ferien und Feiertage fuer den folgenden Tag. -- -- Einspielen: -- mysql -h 127.0.0.1 -P 3310 -u homeMesh -p homeMesh < vorabend.sql -- -- Danach den Runner neu starten (startSolarServer.sh) - Daten laedt er -- selbst nach, neuen Code nicht. -- -- Gebraucht fuer alles, was abends fuer den naechsten Tag geschieht: -- "Kinderrollos zu, wenn morgen Schule ist". Mit dem heutigen Tag liess sich -- das nur annaehern (So-Do, heute keine Ferien) und ging am letzten -- Ferientag, am Abend vor einem Feiertag und am Abend eines Feiertags -- daneben. Mit next_day = 1 heisst dieselbe Regel einfach Mo-Fr, Ferien nie, -- Feiertage nie - wie der Wecker. -- -- Nur der Rahmen verschiebt sich; Uhrzeit, Zeitfenster und "einmal am Tag" -- bleiben beim heutigen Tag. Siehe gemeinter_tag() im Runner. -- =========================================================================== -- Idempotent: beim zweiten Lauf steht die Spalte schon da. SET @vorhanden := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'automations' AND COLUMN_NAME = 'next_day'); SET @sql := IF(@vorhanden = 0, 'ALTER TABLE automations ADD COLUMN next_day TINYINT(1) NOT NULL DEFAULT 0 COMMENT ''Wochentage, Ferien und Feiertage gelten fuer morgen (Vorabend)'' AFTER on_holiday', 'DO 0'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SELECT COLUMN_NAME, COLUMN_DEFAULT, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'automations' AND COLUMN_NAME = 'next_day';