В КУРСЕ?

Разбираемся в теме

Датчик давно молчит, число на экране есть: как заметить устаревшие данные IoT

Панель умного устройства показывает температуру двадцать два градуса. Значение выглядит правдоподобно, но датчик мог перестать передавать сообщения. Сохранённое число не подтверждает текущую связь и не обязательно описывает нынешнее состояние комнаты. Для проектов Интернета вещей важно проектировать не только передачу значений, но и смысл их времени. Разберём это на учебном журнале без оборудования, сетевых настроек и подключения к облачным сервисам.

Последнее известное состояние может пережить соединение

Сервис способен хранить последнее сообщённое состояние устройства и отдавать его приложению, даже когда само устройство отключено. Это полезно: история не исчезает вместе с временным разрывом связи. Однако приложение должно ясно различать сохранённое значение и свежий ответ датчика. Если интерфейс просто повторяет число без пояснения, читатель может принять прошлое наблюдение за новое. Поэтому вопрос когда обновились данные является частью содержания показателя, а не только технической подробностью для разработчика.

У одного сообщения несколько моментов времени

Представим, что датчик измерил температуру в полдень, связь восстановилась в двенадцать ноль пять, а человек открыл панель в двенадцать ноль шесть. Измерению шесть минут, хотя сообщение поступило на сервер только минуту назад. Время доставки и время измерения отвечают на разные вопросы. Иногда система хранит лишь время обновления облачной записи. Из него нельзя автоматически восстановить момент самого измерения. Чтобы делать такой вывод, нужно знать, как устроено сообщение и что означает конкретная временная метка.

Часы и свежесть требуют явных правил

Если отметку времени формирует устройство, его часы могут отличаться от часов сервера. Тогда простое вычитание без проверки общей шкалы даёт вводящий в заблуждение возраст данных. В учебной задаче можно заранее считать часы согласованными, но в реальном проекте это допущение нужно проверить. Кроме того, допустимая давность зависит от назначения показателя. Универсальной границы, после которой любые данные Интернета вещей становятся бесполезными, нет. Для комнатного наблюдения и быстро меняющегося технологического процесса требования могут различаться; здесь конкретные пороги не назначаются.

Устаревшее значение не нужно превращать в ноль

Если свежих данных нет, подстановка нулевой температуры создаёт новую ложную информацию. Ноль является возможным измеренным значением, а отсутствие сообщения означает отсутствие сообщения. Более понятная модель сохраняет последнее наблюдение, его время и отдельный признак давности или отсутствия связи. При этом молчание датчика не доказывает его поломку: возможны проблемы передачи, питания или обработки сообщений. Разделение измерения и состояния обмена помогает избежать поспешного вывода. Для автоматических действий на основе показаний дополнительно нужны правила поведения при неизвестных данных, соответствующие назначению системы.

Попробуйте на практике

Разберите журнал условного датчика на бумаге, считая часы устройства и сервера согласованными.

  1. Запишите время измерения: двенадцать ноль ноль, значение: двадцать два градуса. Рядом укажите получение сервером в двенадцать ноль пять и просмотр панели в двенадцать ноль шесть.
  2. Вычислите возраст измерения и время с момента получения сообщения. Подпишите, почему получились разные величины.
  3. Представьте, что новых сообщений больше нет. Составьте подпись для панели, которая сохраняет последнее число и сообщает время измерения, не выдавая его за свежий ответ.
  4. Уберите из условия время измерения, оставив только время доставки. Отметьте, какое прежнее вычисление теперь нельзя обоснованно выполнить.

Как проверить результат. Возраст измерения равен шести минутам, с доставки прошла одна минута. Подпись различает сохранённое значение и свежесть. Без времени измерения его возраст не объявлен известным, а отсутствие обновления не подменено нулём.

Частые вопросы

Свежий ответ облака означает, что датчик сейчас подключён?

Не обязательно. Облако может вернуть сохранённое состояние. Нужно различать время ответа сервиса, время обновления записи и сведения о самом устройстве.

Достаточно добавить к числу любую дату?

Нет. Должно быть понятно, что именно датируется: измерение, отправка, получение или показ. Необъяснённая метка может создавать уверенность, не давая нужной информации о давности.

Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.

Зарегистрируйтесь, чтобы уточнить возможность доступа к этому материалу

Зарегистрироваться
← К списку материалов