Датчики и единицы
RBgrid измеряет через два уровня:
- Датчики — физические каналы, которые видит хаб. В хабе версии v1.1.x это каналы модулей rbAmp с шиной I²C: вход напряжения и один или несколько токовых каналов на модуль. Встроенного АЦП нет: модули измеряют, а хаб читает их по I²C.
- Единицы — точки измерения, которые вы создаёте, привязывая канал. У точки есть собственный идентификатор, название, роль, статистика и история. Перенос точки на другой канал (перепривязка) сохраняет её идентификатор, название, историю и ячейку истории.
Писать код для добавления датчика или точки не нужно. Каналы появляются сами, когда подключён модуль; канал вы превращаете в точку в веб-приложении или через REST API во время работы.
Датчики — физические каналы
Перечислен каждый канал подключённого модуля, используется он или нет. Канал, не привязанный к точке, просто свободен: он не выдаёт данных, не суммируется и не вызывает предупреждений. Модуль можно использовать с любым подмножеством своих каналов в любом порядке.
Каждый канал содержит:
ch_label— канал, как он подписан на корпусе модуля:I0,I1, … для токовых каналов (нумерация с 0),Vдля входа напряжения модуля иL1–L3на модуле с учётом фаз.- Модель датчика тока — для токового канала модель трансформатора тока (
ct_code/ читаемоеct_name, напримерSCT-013-050, 50 A;ct_nameне выводится, если модель неизвестна) и пределы модуля для неё. В приложении это Датчик тока точки. На модуле, который принимает токовые клещи по вашему выбору, модель задаёте вы (см. Выбор модели датчика тока ниже); на модуле, где датчик спарен с каналом на заводе, модель фиксирована. - Статус коррекции — применил ли модуль коррекцию для выбранной модели датчика. Если нет (
readings not corrected), интерфейс показывает предупреждение и причину (канал не откалиброван · коэффициент усиления не соответствует модели датчика · модуль не знает эту модель датчика). Пока коррекция не применена, показания могут отличаться от реальных.
Сами модули берутся из конфигурации модулей хаба; один модуль по адресу по умолчанию (0x50) находится без какой-либо настройки (см. Начало работы). Семейства модулей rbAmp, их состав каналов и линейка датчиков тока описаны вместе с модулями — см. документацию модулей rbAmp.
Точки — точки измерения
Точка создаётся привязкой одного канала. Она содержит:
| Поле | Что это |
|---|---|
unit_id |
идентификатор точки (4-значный шестнадцатеричный, например 0006, 0100) |
point |
постоянный slug, который используют внешние системы (MQTT, API) |
name / short_name |
отображаемые названия |
role |
роль группы: DEVICE_LOAD, ZONE_LOAD, CIRCUIT_BREAKER, RENEWABLE_SOURCE, STORAGE_SYSTEM, EV_CHARGING, HEATING_COOLING, SMART_APPLIANCE, а также роли питания MAIN_SUPPLY и ALTERNATIVE_SUPPLY |
location |
где находится группа |
stat_class |
сохранено для совместимости; приложение всегда передаёт 1HOUR, и это значение по умолчанию, если его не указать. Оно не определяет, сохраняет ли точка историю (см. Статистика). |
rated_power_w / max_current_a |
номинальные значения группы (для основного ввода — договорная мощность и главный автомат) |
phase |
к какой линии относится канал (см. Фаза ниже) |
В приложении роли называются: Прибор, Нагрузка, Автомат, Генерация, Накопитель, Зарядная станция, Отопление/охлаждение, Умный прибор, а для ролей питания — Ввод и Резервный ввод.
Две точки — особые точки питания: основной ввод (подключение к сети) и необязательный резервный ввод (собственная генерация). Приложение не предлагает роли питания при привязке и не позволяет их менять, а хаб блокирует обе: запрос, затрагивающий любую из ролей питания, отклоняется (HTTP 409). Они несут экономический учёт объекта. Точка напряжения (вход V модуля) и основной ввод не удаляются.
Настройка во время работы — веб-приложение или REST
Всё настраивается на работающем хабе. В C-коде ничего не задаётся.
Веб-приложение — Точки → Свободные датчики → Привязать превращает свободный канал в точку; параметры точки редактируются в её настройках.
REST — те же операции доступны по HTTP:
| Операция | Эндпоинт |
|---|---|
| Список физических каналов | GET /api/v1/sensors (открыт, если не задан токен чтения) |
| Привязать канал → новая точка | POST /api/v1/units |
| Изменить параметры точки (на лету) | POST /api/v1/units/{id} |
| Перенести точку на другой канал | POST /api/v1/units/{id}/rebind |
| Изменить slug точки | POST /api/v1/units/{id}/rename |
| Удалить точку | DELETE /api/v1/units/{id} |
Операции записи требуют административный токен хаба, если он задан: задайте его командой POST /api/system/token и передавайте при записи; это рекомендуется. Пока токен не задан, запись открыта в локальной сети.
Пример привязки канала:
POST /api/v1/units
{
"sensor": { "iface": "i2c", "bus": 0, "module": 0, "ch": 1 },
"name": "Kitchen", "point": "kitchen",
"role": "ZONE_LOAD", "stat_class": "1HOUR", "location": "ground floor"
}
В ответе приходит новый unit_id. Новые идентификаторы выделяются начиная с 0100. Переименование точки выводит старый slug из обращения, поэтому внешняя система не подхватит незаметно другую точку под тем же ключом.
Отвязка или удаление точки стирает её сохранённую историю безвозвратно; её канал снова становится свободным. Идентификатор удалённой точки можно использовать повторно намеренно: приложение предлагает его при привязке (Привязать с прежним идентификатором). Хаб тогда начинает историю заново, но Home Assistant и MQTT продолжают прежний ряд как одну точку.
Параметры вроде name, role, phase, rated_power_w, max_current_a и модель датчика тока меняются на лету через эндпоинт изменения и сохраняются после перезагрузки. Полный справочник полей — в API датчиков и единиц.
Выбор модели датчика тока
На канале модуля, который принимает токовые клещи по вашему выбору (серия SCT), задайте модель, соответствующую фактически установленным клещам: Датчик тока точки в её настройках или ct_code через эндпоинт изменения. Модель записывается в модуль вместе с калибровкой типа и привязывается к идентичности этого модуля, поэтому другой модуль в том же слоте хранит собственную сохранённую модель.
Меняйте её, только если действительно установлены другие клещи. Запись модели заменяет заводскую калибровку канала, а её нельзя восстановить. На канале со спаренным на заводе датчиком (серия CT) модель фиксирована: хаб отклоняет изменение. На неоткалиброванном модуле модель выбрать нельзя.
Фаза
phase указывает, к какой линии питания относится канал. При однофазном питании все каналы используют значение по умолчанию (1P / L1). Поддерживаются однофазное и трёхфазное питание. Мощность и энергия однофазной сети проверены на оборудовании. Мощность и энергия трёхфазной сети тоже проверены на оборудовании, с тремя входами напряжения на одной фазе стенда; настоящая трёхфазная сеть с углом 120° на стенде не испытывалась. Трёхфазный ввод — это один STD-U3I3, а на карточке модуля вы выбираете, учитывается ли ввод как одна точка с фазами, сведёнными в сумму, или как одна точка на фазу, у каждой фазы свой взятый и отданный учёт. Системы питания, проверенные на вашем хабе, перечислены в GET /api/v1/schema → enums.grid_system_validated.
phase — это только метка. Хаб никогда не умножает и не делит значения точки на число фаз: точка с одним трансформатором тока показывает то, что несёт этот один проводник, каким бы ни было её phase. Точка, установленная на 3 фазы для трёхфазной нагрузки, — это измеренная энергия одной фазы: не делите и не умножайте её на три.
Статистика
Каждая точка хранит данные за 3 секунды и 15 минут только в оперативной памяти; сохранённой истории у них нет. Сохранённая история начинается с часового уровня: хаб хранит почасовые записи в собственной флеш-памяти, они переживают перезагрузку, а из них строятся дни, недели, месяцы и годы. Так для любой точки, каким бы ни был её stat_class. История хранится не более чем для 12 точек; точки сверх двенадцати показывают только текущие значения. Точка, добавленная во время работы хаба, начинает историю после следующей перезагрузки. Накопленные итоги энергии хранятся отдельно от истории.
Когда канал близок к пределу
Точка отмечает своё состояние на плитке на Обзоре, в Линиях нагрузки, в таблице точек и в Требует внимания; на странице точки появляется предупреждение:
срез— ток достиг точки среза датчика (его полномасштабного тока, который выше номинала). Выше неё показание занижено, а модуль сам этого не видит. Настройки точки также заранее предупреждают, если линейный автомат выше предела датчика, а строки истории отмечают срез.предел датчика— ток близок к току среза датчика: хаб отмечает это примерно при 90 % этого тока. Для клещей SCT-013 ток среза составляет около 116 % номинала (58 А у SCT-013-050), поэтому предупреждение появляется примерно при 104 % номинала (52 А). До тока среза показания верны. Собственные датчики модулей STD таких отметок не получают; они верны примерно до 130 % своего номинала.- Перевёрнутый трансформатор тока на модуле BASIC: точка показывает датчик перевёрнут — не учитывается. Модуль BASIC учитывает только прямой поток, поэтому нагрузка не учитывается, пока вы не переверните клещи.
Журнал событий записывает одну строку при изменении состояния: «близко к пределу», «срез» или «снова в норме». Отметку часовой записи ставит только срез (признак качества при выходе за диапазон); «близко к пределу» есть только в журнале. См. Обзор и Точки, где эти состояния показываются.