From 705812b2f4c5ad0567f236c5f3c21ff4fe61d412 Mon Sep 17 00:00:00 2001 From: Michal Budzon <98946120+BudzikM@users.noreply.github.com> Date: Mon, 28 Jul 2025 12:58:07 +0200 Subject: [PATCH 1/6] Add meter transformer interfaces --- device_services/generic/meter.md | 54 +++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/device_services/generic/meter.md b/device_services/generic/meter.md index 2656ef0..1a4ce06 100644 --- a/device_services/generic/meter.md +++ b/device_services/generic/meter.md @@ -17,17 +17,24 @@ An electricity meter service can represent a stand-alone AMS meter, like a HAN s ## Interfaces -| Type | Interface | Value type | Properties | Storage | Aggregation | Description | -|------|-----------------------------|------------|------------------------------------------|-------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| in | cmd.meter.get_report | string | | | | Value is an import/consumption `unit` defined in [`sup_units`](#service-properties) property. May not be supported by all meters. Empty or null value requests all supported units. | -| out | evt.meter.report | float | `unit`, `prv_data`, `delta_t`, `virtual` | `aggregate` | `unit` | Returns an import/consumption meter report for `unit` specified in properties. | -| in | cmd.meter.reset | null | | | | Resets all historical readings. | -| - | | | | | | | -| in | cmd.meter_export.get_report | string | | | | Value is a export/production `unit` defined in [`sup_export_units`](#service-properties) property. | -| out | evt.meter_export.report | float | `unit`, `prv_data`, `delta_t` | `aggregate` | `unit` | Returns a export/production meter report for `unit` specified in properties. | -| - | | | | | | | -| in | cmd.meter_ext.get_report | str_array | | | | Requests an extended electricity report for listed extended values. Empty or null value requests all supported extended values. | -| out | evt.meter_ext.report | float_map | | `split` | | Returns an extended electricity report. See [electricity measurements](#electricity-measurements) section for more information. | +| Type | Interface | Value type | Properties | Storage | Aggregation | Description | +|------|----------------------------------|------------|------------------------------------------|-------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| in | cmd.meter.get_report | string | | | | Value is an import/consumption `unit` defined in [`sup_units`](#service-properties) property. May not be supported by all meters. Empty or null value requests all supported units. | +| out | evt.meter.report | float | `unit`, `prv_data`, `delta_t`, `virtual` | `aggregate` | `unit` | Returns an import/consumption meter report for `unit` specified in properties. | +| in | cmd.meter.reset | null | | | | Resets all historical readings. | +| - | | | | | | | +| in | cmd.meter_export.get_report | string | | | | Value is a export/production `unit` defined in [`sup_export_units`](#service-properties) property. | +| out | evt.meter_export.report | float | `unit`, `prv_data`, `delta_t` | `aggregate` | `unit` | Returns a export/production meter report for `unit` specified in properties. | +| - | | | | | | | +| in | cmd.meter_ext.get_report | str_array | | | | Requests an extended electricity report for listed extended values. Empty or null value requests all supported extended values. | +| out | evt.meter_ext.report | float_map | | `split` | | Returns an extended electricity report. See [electricity measurements](#electricity-measurements) section for more information. | +| - | | | | | | +| in | cmd.meter_transformer.get_report | null | | | | Requests list of ratios for each measurement affected by transformer. + | +| out | evt.meter_transformer.report | float_map | `unit`, `prv_data`, `delta_t`, `virtual` | `split` | | Return list of ratios for each measurement affected by transformer. + | +| in | cmd.meter_transformer.set | float_map | | | | Set transformer ratio for selected `unit`. Each measurements received fro the device is multiplied by corresponding ratio set in this command before reported. + | > For backward compatibility the service reports imported/consumed values using `evt.meter.report` interface and exported/produced values using `evt.meter_export.report`. @@ -132,6 +139,31 @@ An electricity meter service can represent a stand-alone AMS meter, like a HAN s } ``` +* Example of a transformer ratio set: + +```json +{ + "serv": "meter_elec", + "type": "cmd.meter_transformer.set", + "val_t": "float_map", + "val": { + "A": 40, + "kWh": 1, + "W": 40, + "V": 1 + }, + "storage": { + "strategy": "split" + }, + "props": null, + "tags": null, + "src": "-", + "ver": "1", + "uid": "e604e951-7afb-4f96-981b-62e905757686", + "topic": "pt:j1/mt:evt/rt:dev/rn:zigbee/ad:1/sv:meter_elec/ad:1_2" +} +``` + ## Electricity measurements Electricity measurements can be reported using different interfaces. From 134aaaccff6b14a641c9c2ec7968f7e836cf0cc0 Mon Sep 17 00:00:00 2001 From: Michal Budzon <98946120+BudzikM@users.noreply.github.com> Date: Mon, 28 Jul 2025 13:02:19 +0200 Subject: [PATCH 2/6] Fix formating --- device_services/generic/meter.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/device_services/generic/meter.md b/device_services/generic/meter.md index 1a4ce06..e7e65b6 100644 --- a/device_services/generic/meter.md +++ b/device_services/generic/meter.md @@ -29,12 +29,9 @@ An electricity meter service can represent a stand-alone AMS meter, like a HAN s | in | cmd.meter_ext.get_report | str_array | | | | Requests an extended electricity report for listed extended values. Empty or null value requests all supported extended values. | | out | evt.meter_ext.report | float_map | | `split` | | Returns an extended electricity report. See [electricity measurements](#electricity-measurements) section for more information. | | - | | | | | | -| in | cmd.meter_transformer.get_report | null | | | | Requests list of ratios for each measurement affected by transformer. - | -| out | evt.meter_transformer.report | float_map | `unit`, `prv_data`, `delta_t`, `virtual` | `split` | | Return list of ratios for each measurement affected by transformer. - | -| in | cmd.meter_transformer.set | float_map | | | | Set transformer ratio for selected `unit`. Each measurements received fro the device is multiplied by corresponding ratio set in this command before reported. - | +| in | cmd.meter_transformer.get_report | null | | | | Requests list of ratios for each measurement affected by transformer. | +| out | evt.meter_transformer.report | float_map | `unit`, `prv_data`, `delta_t`, `virtual` | `split` | | Return list of ratios for each measurement affected by transformer.| | +| in | cmd.meter_transformer.set | float_map | | | | Set transformer ratio for selected `unit`. Each measurements received fro the device is multiplied by corresponding ratio set in this command before reported. | > For backward compatibility the service reports imported/consumed values using `evt.meter.report` interface and exported/produced values using `evt.meter_export.report`. From 55dd1b7096a0425780e2950c87f0357c7c5da257 Mon Sep 17 00:00:00 2001 From: Michal Budzon <98946120+BudzikM@users.noreply.github.com> Date: Mon, 28 Jul 2025 13:03:29 +0200 Subject: [PATCH 3/6] Remove copy paste remainings --- device_services/generic/meter.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/device_services/generic/meter.md b/device_services/generic/meter.md index e7e65b6..d29724b 100644 --- a/device_services/generic/meter.md +++ b/device_services/generic/meter.md @@ -29,8 +29,8 @@ An electricity meter service can represent a stand-alone AMS meter, like a HAN s | in | cmd.meter_ext.get_report | str_array | | | | Requests an extended electricity report for listed extended values. Empty or null value requests all supported extended values. | | out | evt.meter_ext.report | float_map | | `split` | | Returns an extended electricity report. See [electricity measurements](#electricity-measurements) section for more information. | | - | | | | | | -| in | cmd.meter_transformer.get_report | null | | | | Requests list of ratios for each measurement affected by transformer. | -| out | evt.meter_transformer.report | float_map | `unit`, `prv_data`, `delta_t`, `virtual` | `split` | | Return list of ratios for each measurement affected by transformer.| | +| in | cmd.meter_transformer.get_report | null | | | | Requests list of ratios for each measurement affected by transformer. | +| out | evt.meter_transformer.report | float_map | | `split` | | Return list of ratios for each measurement affected by transformer. | | in | cmd.meter_transformer.set | float_map | | | | Set transformer ratio for selected `unit`. Each measurements received fro the device is multiplied by corresponding ratio set in this command before reported. | > For backward compatibility the service reports imported/consumed values using `evt.meter.report` interface and exported/produced values using `evt.meter_export.report`. From dac607308441c20abe2dbc1d69cb821b30e34d17 Mon Sep 17 00:00:00 2001 From: Michal Budzon <98946120+BudzikM@users.noreply.github.com> Date: Mon, 28 Jul 2025 13:05:30 +0200 Subject: [PATCH 4/6] improve descriptions --- device_services/generic/meter.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/device_services/generic/meter.md b/device_services/generic/meter.md index d29724b..88b41c0 100644 --- a/device_services/generic/meter.md +++ b/device_services/generic/meter.md @@ -29,9 +29,9 @@ An electricity meter service can represent a stand-alone AMS meter, like a HAN s | in | cmd.meter_ext.get_report | str_array | | | | Requests an extended electricity report for listed extended values. Empty or null value requests all supported extended values. | | out | evt.meter_ext.report | float_map | | `split` | | Returns an extended electricity report. See [electricity measurements](#electricity-measurements) section for more information. | | - | | | | | | -| in | cmd.meter_transformer.get_report | null | | | | Requests list of ratios for each measurement affected by transformer. | -| out | evt.meter_transformer.report | float_map | | `split` | | Return list of ratios for each measurement affected by transformer. | -| in | cmd.meter_transformer.set | float_map | | | | Set transformer ratio for selected `unit`. Each measurements received fro the device is multiplied by corresponding ratio set in this command before reported. | +| in | cmd.meter_transformer.get_report | null | | | | Requests a list of transformation ratios for each measurement affected by the transformer. | +| out | evt.meter_transformer.report | float_map | | `split` | | Returns a map of transformation ratios for each measurement affected by the transformer. | +| in | cmd.meter_transformer.set | float_map | | | | Sets the transformer ratio for the selected unit. Each measurement received from the device is multiplied by the corresponding ratio before being reported. | > For backward compatibility the service reports imported/consumed values using `evt.meter.report` interface and exported/produced values using `evt.meter_export.report`. From d5251efaf12c8d016f2cc9f924dd38b3a79ba602 Mon Sep 17 00:00:00 2001 From: Michal Budzon <98946120+BudzikM@users.noreply.github.com> Date: Mon, 28 Jul 2025 15:41:40 +0200 Subject: [PATCH 5/6] Update device_services/generic/meter.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- device_services/generic/meter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device_services/generic/meter.md b/device_services/generic/meter.md index 88b41c0..d6d7e93 100644 --- a/device_services/generic/meter.md +++ b/device_services/generic/meter.md @@ -157,7 +157,7 @@ An electricity meter service can represent a stand-alone AMS meter, like a HAN s "src": "-", "ver": "1", "uid": "e604e951-7afb-4f96-981b-62e905757686", - "topic": "pt:j1/mt:evt/rt:dev/rn:zigbee/ad:1/sv:meter_elec/ad:1_2" + "topic": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:meter_elec/ad:1_2" } ``` From da02a29110c137b121f715d817f61372b301a89a Mon Sep 17 00:00:00 2001 From: Michal Budzon <98946120+BudzikM@users.noreply.github.com> Date: Mon, 28 Jul 2025 16:32:30 +0200 Subject: [PATCH 6/6] Add missing split strategy --- device_services/generic/meter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device_services/generic/meter.md b/device_services/generic/meter.md index d6d7e93..22c2e1b 100644 --- a/device_services/generic/meter.md +++ b/device_services/generic/meter.md @@ -31,7 +31,7 @@ An electricity meter service can represent a stand-alone AMS meter, like a HAN s | - | | | | | | | in | cmd.meter_transformer.get_report | null | | | | Requests a list of transformation ratios for each measurement affected by the transformer. | | out | evt.meter_transformer.report | float_map | | `split` | | Returns a map of transformation ratios for each measurement affected by the transformer. | -| in | cmd.meter_transformer.set | float_map | | | | Sets the transformer ratio for the selected unit. Each measurement received from the device is multiplied by the corresponding ratio before being reported. | +| in | cmd.meter_transformer.set | float_map | | `split` | | Sets the transformer ratio for the selected unit. Each measurement received from the device is multiplied by the corresponding ratio before being reported. | > For backward compatibility the service reports imported/consumed values using `evt.meter.report` interface and exported/produced values using `evt.meter_export.report`.