![](https://habrastorage.org/getpro/habr/upload_files/a39/ac4/716/a39ac4716509ac145a2112b368062a9e.jpeg)
Есть у Великобритании интересная мечта: сделать так, чтобы к середине 2025 года все счётчики электроэнергии и газа в стране были «умными». В принципе, весь их «ум» заключается в возможности передавать данные провайдеру (здесь их можно свободно менять в поисках лучшего тарифа) через сотовую сеть, а также показывать в реальном времени текущий расход энергии непосредственно пользователю на отдельном беспроводном экранчике, причём сразу в денежных единицах. Последняя возможность звучит интересно, особенно с учётом выросших цен и нашего недавнего переезда в новый дом: хочется эти данные не просто видеть, а строить графики, оптимизировать, вот это всё... И таки полез я разбираться, как оно устроено, ведь если есть беспроводной экран (терминал), значит есть и протокол передачи данных на него, и при некоторой удаче его можно было бы попробовать распарсить.
![](https://habrastorage.org/getpro/habr/upload_files/e74/3f9/b0d/e743f9b0d8d0b08f9b7b3d957fbca528.jpeg)
Лирическое отступление. Самого экрана у меня, на самом деле, не было: при установке счётчика мне сказали, что из-за дефицита электронных компонентов их нет в наличии, но могут доставить и подключить когда-нибудь потом. С другой стороны, я ожидал, что такой терминал можно было бы в теории создать и подключить самому, раз уж место вакантно — в смысле, что если бы в самом счётчике было ограничение на максимум одно подобное устройство, то мне бы это не помешало.
Тут я по уши провалился в кроличью нору.
Надо было с чего-то начать копать, и первым делом я смело открыл спецификации на свою модель счётчика. Увидев логотип Zigbee прямо на обложке, а также слова Zigbee Smart Energy Profile 1.2 в списке ТТХ, спецификации я сразу закрыл и побежал гуглить этот самый профайл. Казалось бы, если у меня сеть «умных» устройств уже на Zigbee, то осталось только подключить ещё одно устройство к этой сети, правильно? Но нет, счётчик работает как координатор, т.е. создаёт свою сеть, без вариантов. А подключиться к ней (собрать своё конечное устройство, которое бы принимало данные по Zigbee и отдавало их хотя бы по вайфаю) просто так не выйдет: нужно, как минимум, как-то открыть сеть для подключения новых устройств. Пока облом...
![Счётчик — всему голова Счётчик — всему голова](https://habrastorage.org/getpro/habr/upload_files/a53/27c/eac/a5327ceac4af521ef0d26d13ebe414c1.jpg)
Тем временем, нора продолжала демонстрировать новые глубины.
Cам счётчик не станет подключать к своей сети абы что, он может только получить по специальной, насквозь шифрованной, сети под названием DCC (Data and Communications Company, трудно придумать более абстрактное имя) команду на подключение конечного устройства. Обычно это делают специально обученные люди (при установке), либо их спаривают ещё до установки самого счётчика, но вообще, теоретически провайдер это легко может сделать и удалённо, зная только специальные идентификаторы обоих устройств. Увы, DIY-железо так не подключишь: как минимум за неимением такого идентификатора, как максимум — провайдера уговорить на такое будет непросто...
![Процесс спаривания счётчика с Consumer Access Device (экранчиком-терминалом) Процесс спаривания счётчика с Consumer Access Device (экранчиком-терминалом)](https://habrastorage.org/getpro/habr/upload_files/c83/46c/1e7/c8346c1e7da69b4c66148cc34cdea6e7.png)
Падаем дальше: это ещё не game over, да и норка что-то начала расширяться.
Оказывается, DCC используется не только для таких странных процедур, через эту же сеть идут собственно данные от счётчика к провайдеру (но не к терминалу – там, напомню, Zigbee), а дальше они где-то хранятся – по умолчанию будем считать, что у самого провайдера. И вот тут оказывается, что стандарт SMETS (Smart Metering Equipment Technical Specifications) уже достаточно давно (конец 2017 года) дожил до второго поколения, и с некоторых пор первое (активно устанавливаемое с 2013 года) стараются нигде не использовать.
![Хм, а что это там за "Other Authorized Parties" такие?.. Хм, а что это там за "Other Authorized Parties" такие?..](https://habrastorage.org/getpro/habr/upload_files/352/b72/484/352b7248433d9033469e1a5beae6a87c.png)
Почему это важно: в новом стандарте прописано обязательное применение "DCC Other User" – это означает, что данные со счётчика должны быть доступны не только провайдеру, но и другим компаниям, при условии их сертификации по ISO 27001 и наличии доступа, контроль за которым осуществляет SECAS (Smart Energy Code Administrator and Secretariat, а не то, что я подумал). Я так понимаю, основное применение этой фичи – переход к другому провайдеру без смены счётчика, и даже без визита техников, простой удалённой перепривязкой, с сохранением всех накопленных данных.
Обычному DIY-щику вроде меня получать ISO-сертификацию было бы странно, но на самом деле мы уже почти дошли до Страны Чудес.
![Что хочется получить Что хочется получить](https://habrastorage.org/getpro/habr/upload_files/9e7/26a/1aa/9e726a1aa39c0f824595e2e3746cfe29.jpeg)
Есть такая компания Hildebrand, создавшая два продукта (на самом деле, больше, но в данном случае нам интересны эти): Glow и Bright. Первое чудо — это приложение Bright. Устанавливаем на телефон, регистрируемся, указываем номер счётчика, проходим процедуру подтверждения личности, и внезапно получаем все данные (с аггрегацией за полчаса, и соответственно с задержкой в 30 минут) прямо в приложении, независимо от того, какой у вас провайдер. Когда я впервые узнал об этом приложении, я первым делом подумал, что оно как-то хитро забирает данные напрямую с самого счётчика (например, по BLE), но нет: Hildebrand всего лишь имеет доступ к DCC (как тот самый сертифицированный SECAS'ом "Other User") и получает данные из сети. Но и это не всё, они эти данные потом могут отдавать по API, что позволяет легко их завести в тот же Home Assistant! Бесплатно, хоть бы и с регистрацией, зато без смс.
![Схема получения данных через приложение, без дополнительных устройств Схема получения данных через приложение, без дополнительных устройств](https://habrastorage.org/getpro/habr/upload_files/ef4/3cc/406/ef43cc4062af9e67d62f29355bcad8eb.png)
Ну и, раз уж мы теперь знаем, как всё это работает, можно заценить и второе чудо: терминал Glow. Будучи зарегистрированным и верифицированным пользователем приложения Bright, заказываем Glow, подключаем его к WiFi, ждём несколько минут или часов (как повезёт), и внезапно терминал сам, вообще без каких-либо дополнительных действий, подключается к счётчику по Zigbee и начинает показывать данные в реальном времени! А по отдельному запросу эти же данные вам выдадут сразу в MQTT — прямо в локальный брокер!
![Потоки данных при наличии Consumer Access Device Потоки данных при наличии Consumer Access Device](https://habrastorage.org/getpro/habr/upload_files/896/7f0/94d/8967f094dc69c4f82b7feec5995b8c6d.png)
Вот такая получается магия: купил железку, скачал приложение, а за тебя уже и все доступы получили, и устройства удалённо спарили, и данные предоставили в удобном виде. Даже мой провайдер эти данные пока не отдаёт (хотя и обещает «скоро» начать их показывать в своём приложении), а тут какая-то third-party компания уже всё сделала за них, причём максимально DIY-friendly.
![Тот самый Glow в процессе подключения Тот самый Glow в процессе подключения](https://habrastorage.org/getpro/habr/upload_files/ff7/9f6/eeb/ff79f6eebd3b85c0479f11bcf5b628af.jpeg)
В следующий раз постараюсь рассказать об умных счётчиках воды: мне такой вот только что поставили...