Работа у меня связана с разработкой ПО для сбора показаний с приборов учета.
Довелось мне работать и с устройствами мира IoT (Internet of Things). Несколько раз использовали устройства производства Вега-Абсолют, в частности Счетчик импульсов СИ-11.
![Внешний вид счетчика импульсов Вега СИ-11 Внешний вид счетчика импульсов Вега СИ-11](https://habrastorage.org/getpro/habr/upload_files/bc0/cfc/c93/bc0cfcc93357103ec1969527841fd479.png)
Кратко об устройстве: 4 входа, считает импульсы и раз в сутки передает общее количество импульсов по LoraWan на Вега-сервер (ПО и устройства одного производителя, базовые станции тоже). На портах можно настроить режим охраны, но сейчас это не важно. В нашем случае на порты подключены счетчики воды с импульсным выходом.
Сам по себе импульсный интерфейс тащит за собой кучу проблем, которые были описаны в статье Записки IoT-провайдера. Проклятие импульсного выхода. Здесь я постараюсь дополнить особенности, с которыми мы столкнулись при работе с устройствами Вега СИ-11.
1. При замене базы вега-сервера устройство теряется.
На СИ-11 есть наклейка с ключами их нужно ввести на сервере и он сможет активировать устройство нажатием кнопки или прислонив магнитом (зависит от версии). В нашем случае кнопка.
По умолчанию используется способ активации OTAA (активация по воздуху). Работает он так: При активации устройства, сервер отдает ключ сессии и СИ-11 все новые пакеты шифрует с помощью этого ключа сессии.
![Пример активации:JOIN_REQ - запрос активацииJOIN_ACC - ответ с ключом сессии Пример активации:JOIN_REQ - запрос активацииJOIN_ACC - ответ с ключом сессии](https://habrastorage.org/getpro/habr/upload_files/47b/b5b/9a6/47bb5b9a672d1e9a253c776fc56f1077.png)
JOIN_REQ - запрос активации
JOIN_ACC - ответ с ключом сессии
При замене или потере базы данных Вега-сервер перестает знать ключ авторизации не знает как зашифрован пакет и не может расшифровать его. При этом устройство не спрашивает ключ, просто отправляет данные по графику с уверенностью о доставке. Так будет пока вручную не запустить активацию устройства или пока не начнет садится батарейка (об этом ниже). Для активации устройства нужно физический доступ до устройства и если устройств несколько тысяч это становится проблемой.
2. Энергозависимая память
Устройство работает от батарейки, в старых версиях она припаянная. Проблема в том, что при отключении питании, все что он насчитал забывается навсегда. Это нормально, при замене батарейки, можно и синхронизироваться. Самое интересное как садится батарейка.
В нашем случае используется литий-тионилхлоридная (LiSOCl2) батарея припаянная в плату СИ-11. В новых версиях батарейка съемная, но мы с такими пока не работали.
![Припаяная батарейка СИ-11 Припаяная батарейка СИ-11](https://habrastorage.org/getpro/habr/upload_files/f23/e85/620/f23e856204bcabc008d0b82e9c20525c.png)
Итак, батарейка садится и в какой-то момент она перестает держать стабильное напряжение 3.6 вольт и падает до 3.3 и ниже. В этот момент и происходит сброс накопленных показаний.
Просто подключив мультиметр поймать текущий случай не удастся. Нужно подключить и запустить передачу данных.
Интересный момент, просто так заменить литий-тионилхлоридную батарейку нельзя. Это особые батарейки с малым саморазрядом, которые могут долго храниться на складах. Перед тем как ее установить нужно провести депассивизацию (процесс снятия пленки хлорида лития с электрода батарейки и возвращения напряжения на контактах батарейки под нагрузкой выше 3,2 вольт). Подробнее.
К чему приводит сброс: неожиданно клиент видит в приложении показания близкие к нулю или к показаниям последней корректировки. Мы же можем наблюдать сброс накопленных показаний.
![Пример сброса показаний Пример сброса показаний](https://habrastorage.org/getpro/habr/upload_files/4dd/a9a/c74/4dda9ac74e736b51bfe77b0208caa505.png)
Очевидно, что СИ-11 часто сбрасывается и начинает считать заново.
В панели администрирования (admin-tool) вега-сервера начитается активация. А мы помним что ее можно запустить только вручную.
![Пример внезапной активации из-за перезагрузки от батарейки Пример внезапной активации из-за перезагрузки от батарейки](https://habrastorage.org/getpro/habr/upload_files/8b3/6c9/dac/8b36c9dac8661d7aa5aebe211850747c.png)
Отсортировав устройства по последнему сеансу связи, мы думаем, что устройство на связи, а на самом деле нет.
![1й никогда не выходил на связь с серверостальные недавно, но среди них есть СИ-11 с севшей батарейкой 1й никогда не выходил на связь с серверостальные недавно, но среди них есть СИ-11 с севшей батарейкой](https://habrastorage.org/getpro/habr/upload_files/d61/541/082/d6154108234107162f7333adf02c0417.png)
остальные недавно, но среди них есть СИ-11 с севшей батарейкой
Еще один сценарий — удалить батарейки и подключить к блоку питания. Но тут тоже не идеально. По графикам становится видно, когда именно отключали электричество.
![Синхронные скачки показаний Синхронные скачки показаний](https://habrastorage.org/getpro/habr/upload_files/e0d/fa7/a9d/e0dfa7a9da478375053be4ab96e2840b.png)
Требуется бесперебойное питание. Просто внешний блок питание не поможет.
Устанавливая беспроводной счетчик импульсов мы безусловно экономим на строительстве, но теряем на эксплуатации. Время потраченное на корректировку и замену батареек стоит дорого, а время еще дороже. Например большой жилой комплекс с 1000 квартир может иметь 1 до 2–3 тысяч таких счетчиков импульсов.
Основной же минус: СИ11 не передают данные и еще хуже передают неверные данные, а это нельзя назвать полноценной работой. Производитель мог сделать сохранение данные в ПЗУ, но не сделал.
Вывод: будьте внимательны при проектировании АСКУЭ, учтите эти моменты.
viordash
а если перезаагрузка, то тоже сбрасываются данные? Например от искрового разряда, программный баг ну и т.п.
ILMIX Автор
когда ненадолго отключаешь питание, несколько секунд - то замечал, что накопленные импульсы остаются, но если подольше, то сбрасываются.