Есть у Великобритании интересная мечта: сделать так, чтобы к середине 2025 года все счётчики электроэнергии и газа в стране были «умными». В принципе, весь их «ум» заключается в возможности передавать данные провайдеру (здесь их можно свободно менять в поисках лучшего тарифа) через сотовую сеть, а также показывать в реальном времени текущий расход энергии непосредственно пользователю на отдельном беспроводном экранчике, причём сразу в денежных единицах. Последняя возможность звучит интересно, особенно с учётом выросших цен и нашего недавнего переезда в новый дом: хочется эти данные не просто видеть, а строить графики, оптимизировать, вот это всё... И таки полез я разбираться, как оно устроено, ведь если есть беспроводной экран (терминал), значит есть и протокол передачи данных на него, и при некоторой удаче его можно было бы попробовать распарсить.
Лирическое отступление. Самого экрана у меня, на самом деле, не было: при установке счётчика мне сказали, что из-за дефицита электронных компонентов их нет в наличии, но могут доставить и подключить когда-нибудь потом. С другой стороны, я ожидал, что такой терминал можно было бы в теории создать и подключить самому, раз уж место вакантно — в смысле, что если бы в самом счётчике было ограничение на максимум одно подобное устройство, то мне бы это не помешало.
Тут я по уши провалился в кроличью нору.
Надо было с чего-то начать копать, и первым делом я смело открыл спецификации на свою модель счётчика. Увидев логотип Zigbee прямо на обложке, а также слова Zigbee Smart Energy Profile 1.2 в списке ТТХ, спецификации я сразу закрыл и побежал гуглить этот самый профайл. Казалось бы, если у меня сеть «умных» устройств уже на Zigbee, то осталось только подключить ещё одно устройство к этой сети, правильно? Но нет, счётчик работает как координатор, т.е. создаёт свою сеть, без вариантов. А подключиться к ней (собрать своё конечное устройство, которое бы принимало данные по Zigbee и отдавало их хотя бы по вайфаю) просто так не выйдет: нужно, как минимум, как-то открыть сеть для подключения новых устройств. Пока облом...
Тем временем, нора продолжала демонстрировать новые глубины.
Cам счётчик не станет подключать к своей сети абы что, он может только получить по специальной, насквозь шифрованной, сети под названием DCC (Data and Communications Company, трудно придумать более абстрактное имя) команду на подключение конечного устройства. Обычно это делают специально обученные люди (при установке), либо их спаривают ещё до установки самого счётчика, но вообще, теоретически провайдер это легко может сделать и удалённо, зная только специальные идентификаторы обоих устройств. Увы, DIY-железо так не подключишь: как минимум за неимением такого идентификатора, как максимум — провайдера уговорить на такое будет непросто...
Падаем дальше: это ещё не game over, да и норка что-то начала расширяться.
Оказывается, DCC используется не только для таких странных процедур, через эту же сеть идут собственно данные от счётчика к провайдеру (но не к терминалу – там, напомню, Zigbee), а дальше они где-то хранятся – по умолчанию будем считать, что у самого провайдера. И вот тут оказывается, что стандарт SMETS (Smart Metering Equipment Technical Specifications) уже достаточно давно (конец 2017 года) дожил до второго поколения, и с некоторых пор первое (активно устанавливаемое с 2013 года) стараются нигде не использовать.
Почему это важно: в новом стандарте прописано обязательное применение "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 — прямо в локальный брокер!
Вот такая получается магия: купил железку, скачал приложение, а за тебя уже и все доступы получили, и устройства удалённо спарили, и данные предоставили в удобном виде. Даже мой провайдер эти данные пока не отдаёт (хотя и обещает «скоро» начать их показывать в своём приложении), а тут какая-то third-party компания уже всё сделала за них, причём максимально DIY-friendly.
В следующий раз постараюсь рассказать об умных счётчиках воды: мне такой вот только что поставили...
Комментарии (13)
Didimus
19.08.2022 07:07Где-то читал, что такие счётчики не могут корректно считать потребление импульсных блоков питания, аппроксимируя по пикам. Это очень выгодно тем, кто эти счетчики лоббирует.
PKav
19.08.2022 13:13Если так, то можно создать устройство, которое будет потреблять энергию когда счётчик не проводит измерения и переходить на конденсаторы когда измерение проводится. Выглядит как баг, дыра в безопасности.
Tiriet
19.08.2022 13:36зачетная КДПВ. за сегодня потрачено газа и электричества на 510 рублей. Вопрос- как долго может протянуть экономика при такой разнице в цене базовых ресурсов?
ginkage Автор
19.08.2022 13:42+2Довольно долго. :)
С одной стороны, картинка показывает потребление достаточно большого частного дома (причём, в пиковые дни, когда и отопление необходимо, и электроприборами пользовались активно), а не однокомнатной квартиры, с другой — здесь вообще цены другого порядка, но и зарплаты выше соответственно.
kovserg
19.08.2022 15:36-1Когда уже будут умные кандалы, для измерения углеродного следа жителей великобритании, что бы сразу через нейроинтерфейст показывали сколько они должны даже когда они спят?
А так да, куда же без умных счетчиков особенно в европе
Polaris99
19.08.2022 15:54+1Это как с умными счетчиками в Германии, которые призывают ставить повсеместно для того, чтобы оптимизировать расходы на энергоресурсы, но, правда, не объясняют, каким именно образом, потому что каких-то льготных ночных тарифов в природе еще не существует, да и какое вообще они отношение имеют к счетчикам - непонятно. Зато стоить они будут существенно дороже, а в плане безопасности тоже неизвестно что из себя представлять, потому что постоянная передача данных на сервер провайдера в условиях общей дырявости всего и вся может помочь злоумышленникам отслеживать по расходу моменты, когда хозяев нет дома.
nowhereman
19.08.2022 17:06Раньше между экраном и счетчиком использовался протокол M-Bus (модель счетчика не помню), у меня в такой стоял в 2014 году арендуемом жилье. На тот момент я задался вопросом получить с него данные напрямую, прикрутил mbus-uart модуль (AMB8426-M) к Raspberry PI, но получить данные не получилось, помню он инициализировался, а данные отдавал шифрованные. Пробовал потом еще сниффер но тоже без толку.
Barnaby
Можно импульсы считать, я примерно так сделал https://esphome.io/cookbook/power_meter.html
Главное чтобы была возможность держать счетчик в темноте.