MQTT, Zigbee, PHP, MySQL. Без YAML. Только сценарии.
Условия включения:
Действия:
garage/vent/mode → passive
servo/passive_damper → 100
servo/bypass_damper → 0
fan/intake → off
, fan/exhaust → off
Частота проверки: каждые 10 минут
Условия включения:
Действия:
garage/vent/mode → filtered
servo/passive_damper → 0
filter/hepa → on
fan/intake → on
(50%)fan/exhaust → on
(50%)Выключение: когда PM2.5 < 20 и прошло 30 мин
Условия включения:
Действия:
garage/vent/mode → recuperation
servo/bypass_damper → 0
fan/intake → on
, fan/exhaust → on
(60–80%)Условия включения:
Действия:
garage/vent/mode → bypass
servo/bypass_damper → 100
Вернуться в recuperation: если ворота закрыты, T_гараж - T_улица > 10 °C, нет льда
Условия включения:
Действия:
garage/vent/mode → emergency
Условия включения:
Действия:
garage/vent/mode → ground_cooling
Условия: 22:00 – 07:00 И нет движения
Действия:
Пример псевдокода:
// Каждые 5–10 минут $co2 = mqtt_get('garage/sensor/co2'); $pm25 = api_get('https://api.waqi.info/...'); $temp_diff = $inside_temp - $outside_temp; $door_open = mqtt_get('garage/door/state'); if ($pm25 > 35) { set_mode('filtered'); } elseif ($temp_diff > 15 && $pm25 < 25 && $door_open == 'off') { set_mode('passive'); } elseif ($outside_temp < 5 && $co2 > 900) { set_mode('recuperation'); } // ... и так далее
CREATE TABLE vent_modes ( id INT AUTO_INCREMENT PRIMARY KEY, mode VARCHAR(20), -- passive, filtered, recuperation... activated_at DATETIME, reason TEXT -- "high PM2.5", "temp diff >15" );
Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах —
вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!