Проблема: на веб-странице отображались все датчики из базы, даже те, для которых не велась история (т.е. графики были пустыми). Например, появлялись карточки типа «bedroom voltage» без графика.
Причина: PHP-скрипт фильтровал датчики только по типу (temperature, humidity и т.д.), но не проверял, есть ли у них данные в таблице sensor_history.
Решение:
- В Python-скрипте (
mqtt_to_mysql.py) явно указать список топиков, для которых нужно сохранять историю — через переменнуюTOPICS_FOR_HISTORY. - Очистить таблицу
sensor_historyот старых/лишних записей, оставив только разрешённые топики. - Обновить PHP-код страницы так, чтобы он выбирал датчики ТОЛЬКО если их топик присутствует в
sensor_history:WHERE i.topic IN (SELECT DISTINCT topic FROM sensor_history)
Результат: на сайте теперь отображаются только те датчики, для которых действительно ведётся история и строятся графики. Всё остальное — скрыто.
Вывод: лучше управлять набором графиков на уровне сбора данных (в MQTT-скрипте), а не на уровне отображения. Это даёт чистоту и предсказуемость.
обновленный файл sensors.php
Комментарии
Пока нет комментариев. Будьте первым!