Есть у Великобритании интересная мечта: сделать так, чтобы к середине 2025 года все счётчики электроэнергии и газа в стране были «умными». В принципе, весь их «ум» заключается в возможности передавать данные провайдеру (здесь их можно свободно менять в поисках лучшего тарифа) через сотовую сеть, а также показывать в реальном времени текущий расход энергии непосредственно пользователю на отдельном беспроводном экранчике, причём сразу в денежных единицах. Последняя возможность звучит интересно, особенно с учётом выросших цен и нашего недавнего переезда в новый дом: хочется эти данные не просто видеть, а строить графики, оптимизировать, вот это всё... И таки полез я разбираться, как оно устроено, ведь если есть беспроводной экран (терминал), значит есть и протокол передачи данных на него, и при некоторой удаче его можно было бы попробовать распарсить.

Лирическое отступление. Самого экрана у меня, на самом деле, не было: при установке счётчика мне сказали, что из-за дефицита электронных компонентов их нет в наличии, но могут доставить и подключить когда-нибудь потом. С другой стороны, я ожидал, что такой терминал можно было бы в теории создать и подключить самому, раз уж место вакантно — в смысле, что если бы в самом счётчике было ограничение на максимум одно подобное устройство, то мне бы это не помешало.

Тут я по уши провалился в кроличью нору.

Надо было с чего-то начать копать, и первым делом я смело открыл спецификации на свою модель счётчика. Увидев логотип Zigbee прямо на обложке, а также слова Zigbee Smart Energy Profile 1.2 в списке ТТХ, спецификации я сразу закрыл и побежал гуглить этот самый профайл. Казалось бы, если у меня сеть «умных» устройств уже на Zigbee, то осталось только подключить ещё одно устройство к этой сети, правильно? Но нет, счётчик работает как координатор, т.е. создаёт свою сеть, без вариантов. А подключиться к ней (собрать своё конечное устройство, которое бы принимало данные по Zigbee и отдавало их хотя бы по вайфаю) просто так не выйдет: нужно, как минимум, как-то открыть сеть для подключения новых устройств. Пока облом...

Счётчик — всему голова
Счётчик — всему голова

Тем временем, нора продолжала демонстрировать новые глубины.

Cам счётчик не станет подключать к своей сети абы что, он может только получить по специальной, насквозь шифрованной, сети под названием DCC (Data and Communications Company, трудно придумать более абстрактное имя) команду на подключение конечного устройства. Обычно это делают специально обученные люди (при установке), либо их спаривают ещё до установки самого счётчика, но вообще, теоретически провайдер это легко может сделать и удалённо, зная только специальные идентификаторы обоих устройств. Увы, DIY-железо так не подключишь: как минимум за неимением такого идентификатора, как максимум — провайдера уговорить на такое будет непросто...

Процесс спаривания счётчика с Consumer Access Device (экранчиком-терминалом)
Процесс спаривания счётчика с Consumer Access Device (экранчиком-терминалом)

Падаем дальше: это ещё не game over, да и норка что-то начала расширяться.

Оказывается, DCC используется не только для таких странных процедур, через эту же сеть идут собственно данные от счётчика к провайдеру (но не к терминалу – там, напомню, Zigbee), а дальше они где-то хранятся – по умолчанию будем считать, что у самого провайдера. И вот тут оказывается, что стандарт SMETS (Smart Metering Equipment Technical Specifications) уже достаточно давно (конец 2017 года) дожил до второго поколения, и с некоторых пор первое (активно устанавливаемое с 2013 года) стараются нигде не использовать.

Хм, а что это там за "Other Authorized Parties" такие?..
Хм, а что это там за "Other Authorized Parties" такие?..

Почему это важно: в новом стандарте прописано обязательное применение "DCC Other User" – это означает, что данные со счётчика должны быть доступны не только провайдеру, но и другим компаниям, при условии их сертификации по ISO 27001 и наличии доступа, контроль за которым осуществляет SECAS (Smart Energy Code Administrator and Secretariat, а не то, что я подумал). Я так понимаю, основное применение этой фичи – переход к другому провайдеру без смены счётчика, и даже без визита техников, простой удалённой перепривязкой, с сохранением всех накопленных данных.

Обычному DIY-щику вроде меня получать ISO-сертификацию было бы странно, но на самом деле мы уже почти дошли до Страны Чудес.

Что хочется получить
Что хочется получить

Есть такая компания Hildebrand, создавшая два продукта (на самом деле, больше, но в данном случае нам интересны эти): Glow и Bright. Первое чудо — это приложение Bright. Устанавливаем на телефон, регистрируемся, указываем номер счётчика, проходим процедуру подтверждения личности, и внезапно получаем все данные (с аггрегацией за полчаса, и соответственно с задержкой в 30 минут) прямо в приложении, независимо от того, какой у вас провайдер. Когда я впервые узнал об этом приложении, я первым делом подумал, что оно как-то хитро забирает данные напрямую с самого счётчика (например, по BLE), но нет: Hildebrand всего лишь имеет доступ к DCC (как тот самый сертифицированный SECAS'ом "Other User") и получает данные из сети. Но и это не всё, они эти данные потом могут отдавать по API, что позволяет легко их завести в тот же Home Assistant! Бесплатно, хоть бы и с регистрацией, зато без смс.

Схема получения данных через приложение, без дополнительных устройств
Схема получения данных через приложение, без дополнительных устройств

Ну и, раз уж мы теперь знаем, как всё это работает, можно заценить и второе чудо: терминал Glow. Будучи зарегистрированным и верифицированным пользователем приложения Bright, заказываем Glow, подключаем его к WiFi, ждём несколько минут или часов (как повезёт), и внезапно терминал сам, вообще без каких-либо дополнительных действий, подключается к счётчику по Zigbee и начинает показывать данные в реальном времени! А по отдельному запросу эти же данные вам выдадут сразу в MQTT — прямо в локальный брокер!

Потоки данных при наличии Consumer Access Device
Потоки данных при наличии Consumer Access Device

Вот такая получается магия: купил железку, скачал приложение, а за тебя уже и все доступы получили, и устройства удалённо спарили, и данные предоставили в удобном виде. Даже мой провайдер эти данные пока не отдаёт (хотя и обещает «скоро» начать их показывать в своём приложении), а тут какая-то third-party компания уже всё сделала за них, причём максимально DIY-friendly.

Тот самый Glow в процессе подключения
Тот самый Glow в процессе подключения

В следующий раз постараюсь рассказать об умных счётчиках воды: мне такой вот только что поставили...

Комментарии (13)


  1. Barnaby
    18.08.2022 17:48
    +1

    Можно импульсы считать, я примерно так сделал https://esphome.io/cookbook/power_meter.html

    Главное чтобы была возможность держать счетчик в темноте.


  1. Didimus
    19.08.2022 07:07

    Где-то читал, что такие счётчики не могут корректно считать потребление импульсных блоков питания, аппроксимируя по пикам. Это очень выгодно тем, кто эти счетчики лоббирует.


    1. PKav
      19.08.2022 13:13

      Если так, то можно создать устройство, которое будет потреблять энергию когда счётчик не проводит измерения и переходить на конденсаторы когда измерение проводится. Выглядит как баг, дыра в безопасности.


      1. Didimus
        19.08.2022 14:07

        А как оно будет попадать в те периоды, когда счетчик спит? Это надо счетчик хакать


        1. PKav
          19.08.2022 14:18

          Частота измерений наверняка фиксированная, а попадание в нее можно выяснить по потреблению, которое показывает счётчик.


  1. Rebeiro1976
    19.08.2022 07:24
    -3

    нафига эти счетчики нужны, на них магниты не повесишь


    1. Tuvok
      19.08.2022 16:34

      А как насчёт хакнуть?


  1. Tiriet
    19.08.2022 13:36

    зачетная КДПВ. за сегодня потрачено газа и электричества на 510 рублей. Вопрос- как долго может протянуть экономика при такой разнице в цене базовых ресурсов?


    1. ginkage Автор
      19.08.2022 13:42
      +2

      Довольно долго. :)

      С одной стороны, картинка показывает потребление достаточно большого частного дома (причём, в пиковые дни, когда и отопление необходимо, и электроприборами пользовались активно), а не однокомнатной квартиры, с другой — здесь вообще цены другого порядка, но и зарплаты выше соответственно.


    1. Didimus
      19.08.2022 14:06
      +1

      15 тысяч а месяц? Нормальное потребление для частного дома в России


  1. kovserg
    19.08.2022 15:36
    -1

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

    А так да, куда же без умных счетчиков особенно в европе


  1. Polaris99
    19.08.2022 15:54
    +1

    Это как с умными счетчиками в Германии, которые призывают ставить повсеместно для того, чтобы оптимизировать расходы на энергоресурсы, но, правда, не объясняют, каким именно образом, потому что каких-то льготных ночных тарифов в природе еще не существует, да и какое вообще они отношение имеют к счетчикам - непонятно. Зато стоить они будут существенно дороже, а в плане безопасности тоже неизвестно что из себя представлять, потому что постоянная передача данных на сервер провайдера в условиях общей дырявости всего и вся может помочь злоумышленникам отслеживать по расходу моменты, когда хозяев нет дома.


  1. nowhereman
    19.08.2022 17:06

    Раньше между экраном и счетчиком использовался протокол M-Bus (модель счетчика не помню), у меня в такой стоял в 2014 году арендуемом жилье. На тот момент я задался вопросом получить с него данные напрямую, прикрутил mbus-uart модуль (AMB8426-M) к Raspberry PI, но получить данные не получилось, помню он инициализировался, а данные отдавал шифрованные. Пробовал потом еще сниффер но тоже без толку.