-- =========================================================================== -- Haltezeit: die Bedingung muss eine Weile durchgehend erfuellt sein -- -- Einspielen: -- mysql -h 127.0.0.1 -P 3310 -u homeMesh -p homeMesh < haltezeit.sql -- -- Danach den Runner neu starten (startSolarServer.sh) - Daten laedt er -- selbst nach, neuen Code nicht. -- -- --------------------------------------------------------------------------- -- Wozu -- -- Bisher loeste eine Automatik in dem Moment aus, in dem die Bedingung wahr -- wurde. Fuer "Temperatur ueber 22 Grad" ist das richtig. Fuer "der -- Wasserzaehler laeuft und hoert nicht auf" ist es unbrauchbar: Jeder -- Spuelgang macht die Bedingung wahr, und gemeint war "seit einer halben -- Stunde ohne Pause". -- -- Die Sperrzeit (lockout_secs) taugt dafuer nicht - sie begrenzt, wie oft -- ausgeloest wird, nicht wie lange etwas anliegen muss. Und die Verkettung -- ueber eine zweite Automatik traefe es nur ungefaehr. -- -- hold_secs = 0 ist die Vorgabe und heisst: sofort, also genau wie bisher. -- Jede vorhandene Automatik behaelt damit ihr Verhalten. -- -- Gezaehlt wird im Runner, nicht in der Datenbank: Er weiss ohnehin bei -- jedem Takt, ob die Bedingung gerade erfuellt ist. Faellt sie zwischendurch -- aus, faengt die Zeit von vorn an - genau das ist "ohne Pause". -- --------------------------------------------------------------------------- ALTER TABLE `automations` ADD COLUMN IF NOT EXISTS `hold_secs` int(11) NOT NULL DEFAULT 0 COMMENT 'Haltezeit: so lange muss die Bedingung ununterbrochen erfuellt sein, bevor ausgeloest wird. 0 = sofort' AFTER `lockout_secs`;