У мене є програмне забезпечення (Windows Server - трохи інше, ніж "речі", але головне - те саме), яке телефонує кожні 24 години - воно надсилає назад різні метадані про себе:
- ім'я клієнта (або унікальний ідентифікатор)
- версія програмного забезпечення
- мітка часу дзвінка / запиту
- тип продукту / ід
Веб-сервіс аналізує дані та вставляє (або оновлює, якщо у клієнта наявний рядок) рядок у базі даних.
Таким чином, новий клієнт автоматично додається до БД, існуючі клієнти оновлюють часові позначки "останніх побачень", і ми завжди маємо останню версію програмного забезпечення. Я можу запускати запити БД, які повідомляють мені, які клієнти старіші версії та / або які клієнти не зателефонували протягом певного часу.
Нещодавно ми також впровадили автоматичне оновлення (думаю, оновлення OTA), і тому, що це критичний процес, ми реалізували для цього конкретну телеметрію - що записує:
- Поточна версія.
- Версія для оновлення.
- Хто / коли це санкціонував (якщо вимагається прийняття клієнта).
- Часові позначки та коди статусу для кожного з основних кроків.
Це дозволяє нам визначити, чи певні аспекти автоматичного оновлення не вдається, і в багатьох випадках дозволяє нам дзвонити клієнту часто, перш ніж вони навіть помітять, що щось не так.
Велика різниця із "речами" полягає в тому, що ти, як правило, обмежена пам'яттю, тому для оновлення xxx Kb
прошивки потрібна xxx Kb * 2
пам'ять OTA (наявна прошивка + достатня пам'ять для зберігання нової мікропрограми перед початком оновлення фактичної прошивки)