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