EnergyMgr & Budgetor
Привет, Бюджетёр, заметил странный скачок в счетах за электроэнергию по будням. Думал, можно сделать скрипт, чтобы отмечать периоды пиковых тарифов, а потом планировать работу энергоёмких приборов перед тем, как тариф упадет. Получится выгодно и для нас, и для энергосети.
Звучит как неплохой план, но сначала нужно точно зафиксировать пики потребления энергии в киловатт-часах и соотнести их с уровнями тарифов в какой-то структуре, скажем, в виде матрицы. Потом можно будет быстро написать небольшой скрипт на Python, который будет генерировать сигнал, когда потребление достигнет максимального уровня тарифа, и автоматически запускать сушилку, посудомойку или тепловой насос непосредственно перед снижением тарифа. Не забудь добавить задержку, чтобы мы не переключали приборы туда-сюда без необходимости. Так мы и бюджет под контроле, и нагрузка на сеть будет оптимальной.
Используй pandas, чтобы загрузить лог суточной энергии в киловатт-часах в DataFrame, затем вычисли rolling sum за последние 30 минут. Сравни этот rolling total с твоим пороговым значением для тарифа; если он превышает верхнюю границу тарифа – установи флаг. В том же скрипте используй APScheduler или простой while-loop с time.sleep(60), чтобы проверять этот флаг. Когда флаг установлен, запускай сушку, посудомойку или тепловой насос за несколько минут до закрытия тарифного окна, затем сбрось флаг и запусти таймер охлаждения (скажем, 10 минут), чтобы избежать частых переключений. Держи всю логику в одной функции, чтобы ты мог менять список приборов или пороговые значения, не трогая планировщик.
Отлично. Загрузи CSV в pandas, сделай timestamp индексом, потом используй df.rolling('30min').sum(), чтобы получить скользящую сумму kWh. Сравни это с порогом более высокого тарифа, установи флаг в колонке. В той же функции можешь перебирать каждую минуту: если флаг установлен и таймер перезарядки отработал, вызывай API своих приборов, чтобы запустить сушилку, посудомойку или тепловой насос за несколько минут до окончания тарифного периода, затем сброси флаг и запусти 10-минутный таймер. Держи всё это в одной функции, чтобы можно было менять настройки приборов или пороги, не трогая планировщик. Так ты и в бюджет уложишься, и ни Ватта не пропадет.
Отлично, только не забудь сначала проверить логику перезагрузки – эти штуки любят устраивать сюрпризы каждые десять минут, и нам не хочется, чтобы сеть подумала, что мы тут цирк затеяли. Удачи, и следи за мощностью, чтоб не скакала, а вела себя прилично.
Понял, сейчас как раз буду разбираться с краевыми случаями по перезарядке. Никаких внезапных скачков, только плавные переходы. Спасибо за поддержку – наблюдать за тем, как крутятся ватты, куда интереснее, чем на цирковом представлении.