Skip to content

Forwarding to an MSSQL database

We forward messages to an MSSQL database by insering rows into the table(s) we have been granted access to.

Below the schemas for the following messages can be found:

Solar power

The schema for messages forwarded from a Teleport device that is connected to a solar inverter:

USE master;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'teleport')
CREATE DATABASE teleport;
USE teleport;
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_solar_power' and xtype='U')
CREATE TABLE "teleport_solar_power"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL, -- uniquely identifies the teleport device
"asset_identifier" varchar(128) NOT NULL, -- globally unique identifier of the asset, when available the brand and serial number of the asset
"attempt" int NOT NULL, -- 0-indexed delivery attempt
"active_power" int DEFAULT NULL, -- in W
"generated_energy" bigint DEFAULT NULL, -- in Wh
"active_power_limit_percentage" decimal(4,1) DEFAULT NULL,
"scheduled" bit NOT NULL, -- false for measurements that are not part of the regular reporting interval, eg. directly after command execution and at Teleport initialisation
"measured_at" datetime NOT NULL, -- in UTC
"created_at" datetime NOT NULL, -- in UTC
PRIMARY KEY ("id"),
INDEX "teleport" ("teleport_hash_id","created_at"),
INDEX "teleport_asset" UNIQUE ("teleport_hash_id", "asset_identifier", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);
IF NOT EXISTS (SELECT NULL FROM SYS.EXTENDED_PROPERTIES WHERE [major_id] = OBJECT_ID('teleport_solar_power') AND [name] = N'version' AND [minor_id] = 0)
EXEC sys.sp_addextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_solar_power'
ELSE EXEC sys.sp_updateextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_solar_power';

Wind power

The schema for messages forwarded from a Teleport device that is connected to a wind energy converter:

USE master;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'teleport')
CREATE DATABASE teleport;
USE teleport;
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_wind_power' and xtype='U')
CREATE TABLE "teleport_wind_power"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL, -- uniquely identifies the teleport device
"asset_identifier" varchar(128) NOT NULL, -- globally unique identifier of the asset, when available the brand and serial number of the asset
"attempt" int NOT NULL, -- 0-indexed delivery attempt
"active_power" int DEFAULT NULL, -- in W
"wind_speed" decimal(8,3) DEFAULT NULL, -- in m/s
"available_active_power" int DEFAULT NULL, -- in W
"constrained_available_active_power_current_wind" int DEFAULT NULL, -- in W
"constrained_available_active_power_technical" int DEFAULT NULL, -- in W
"constrained_available_active_power_force_majeure" int DEFAULT NULL, -- in W
"constrained_available_active_power_external_setpoints" int DEFAULT NULL, -- in W
"active_power_limit_percentage" decimal(4,1) DEFAULT NULL,
"measured_at" datetime NOT NULL, -- when read-out started, in UTC
"created_at" datetime NOT NULL, -- when row was written, in UTC
PRIMARY KEY ("id"),
INDEX "teleport" ("teleport_hash_id","created_at"),
INDEX "teleport_asset" UNIQUE ("teleport_hash_id", "asset_identifier", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);
IF NOT EXISTS (SELECT NULL FROM SYS.EXTENDED_PROPERTIES WHERE [major_id] = OBJECT_ID('teleport_wind_power') AND [name] = N'version' AND [minor_id] = 0)
EXEC sys.sp_addextendedproperty
@name=N'version',
@value=2,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_wind_power'
ELSE EXEC sys.sp_updateextendedproperty
@name=N'version',
@value=2,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_wind_power';
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_wind_power_converters' and xtype='U')
CREATE TABLE "teleport_wind_power_converters"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL, -- uniquely identifies the teleport device
"asset_identifier" varchar(128) NOT NULL, -- globally unique identifier of the asset, when available the brand and serial number of the asset
"converter_identifier" varchar(128) NOT NULL, -- serial number of the converter
"attempt" int NOT NULL, -- 0-indexed delivery attempt
"active_power" int DEFAULT NULL, -- in W
"wind_speed" decimal(8,3) DEFAULT NULL, -- in m/s
"measured_at" datetime NOT NULL, -- when read-out started, in UTC
"created_at" datetime NOT NULL, -- when row was written, in UTC
PRIMARY KEY ("id"),
INDEX "converter" ("converter_identifier","created_at"),
INDEX "teleport" ("teleport_hash_id","asset_identifier","created_at"),
INDEX "teleport_asset_converter" UNIQUE ("teleport_hash_id", "asset_identifier", "converter_identifier", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);

Battery power

Batteries produce two types of messages: regular messages and flash messages. Batteries report flash messages more often than regular messages (typically every second) and contain information that is needed for dispatching algorithms and to forward to the TSO when doing aFRR/FCR. For the strings that can occur in the errors and warnings properties, see Battery power error and warning codes.

USE master;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'teleport')
CREATE DATABASE teleport;
USE teleport;
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_battery_power' and xtype='U')
CREATE TABLE "teleport_battery_power"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL,
"asset_identifier" varchar(128) NOT NULL,
"attempt" int NOT NULL,
"battery_status" varchar(32) DEFAULT NULL, -- can be "on", "off", "other" or null (see warning and errors in case of 'other')
"energy_charged" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"energy_discharged" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"frequency" decimal(7,2) DEFAULT NULL, -- in Hz, nonnegative
"active_power" decimal(23,3) DEFAULT NULL, -- in W, positive means discharging, negative charging
"reactive_power" decimal(23,3) DEFAULT NULL, -- in var, positive is injecting reactive power to the grid and negative is absorbing reactive power
"state_of_charge" decimal(7,4) DEFAULT NULL, -- in %, nonnegative
"state_of_health" decimal(7,4) DEFAULT NULL, -- in %, nonnegative
"available_energy" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"rated_energy" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"available_active_power_charge" decimal(23,3) DEFAULT NULL, -- in W, nonnegative
"available_active_power_discharge" decimal(23,3) DEFAULT NULL, -- in W, nonnegative
"available_reactive_power_inject" decimal(23,3) DEFAULT NULL, -- in var, nonnegative
"available_reactive_power_absorb" decimal(23,3) DEFAULT NULL, -- in var, nonnegative
"active_power_setpoint_dispatch_power" decimal(23,3) DEFAULT NULL, -- in W, positive means discharging, negative charging
"active_power_setpoint_deliver_fcr" decimal(23,3) DEFAULT NULL, -- in W, positive means discharging, negative charging
"active_power_setpoint_charge_to_state" decimal(23,3) DEFAULT NULL, -- in W, positive means discharging, negative charging
"active_power_setpoint_aggregate" decimal(23,3) DEFAULT NULL, -- in W, positive means discharging, negative charging
"three_phase_connection_type_high_voltage" varchar(32) DEFAULT NULL, -- can be "wye" or "delta"
"ac_voltage_medium_voltage_phase_l1" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_medium_voltage_phase_l2" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_medium_voltage_phase_l3" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_medium_voltage_line_l1" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_medium_voltage_line_l2" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_medium_voltage_line_l3" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_current_medium_voltage_phase_l1" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_medium_voltage_phase_l2" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_medium_voltage_phase_l3" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_medium_voltage_line_l1" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_medium_voltage_line_l2" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_medium_voltage_line_l3" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"auxiliary_power_active" decimal(23,3) DEFAULT NULL, -- in W, can be null. Negative means consuming, positive generating, will be negative or 0
"auxiliary_power_reactive" decimal(23,3) DEFAULT NULL, -- in Var, can be null. Negative means consuming, positive generating, will be negative or 0
"configuration_dispatch_power_active_power" decimal(23,3) DEFAULT NULL, -- in W, positive means discharging, negative charging
"configuration_deliver_fcr_max_rate" decimal(23,3) DEFAULT NULL, -- in W, nonnegative
"configuration_charge_to_state_percentage" decimal(7,4) DEFAULT NULL, -- in %, nonnegative
"warnings" nvarchar(4000) DEFAULT NULL, -- if not null, will contain a JSON aray of string elements. see error codes section
"errors" nvarchar(4000) DEFAULT NULL, -- if not null, will contain a JSON array of string elements. see error codes section
"schedule_complete_until" datetime DEFAULT NULL, -- first gap in the schedule for this asset_identifier
"scheduled" bit NOT NULL, -- false for measurements that are not part of the regular reporting interval, eg. directly after command execution and at Teleport initialisation
"measured_at" datetime NOT NULL, -- when read-out started
"created_at" datetime NOT NULL, -- when written to the table
PRIMARY KEY ("id"),
INDEX "teleport" ("teleport_hash_id","created_at"),
INDEX "teleport_asset" UNIQUE ("teleport_hash_id", "asset_identifier", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);
IF NOT EXISTS (SELECT NULL FROM SYS.EXTENDED_PROPERTIES WHERE [major_id] = OBJECT_ID('teleport_battery_power') AND [name] = N'version' AND [minor_id] = 0)
EXEC sys.sp_addextendedproperty
@name=N'version',
@value=3,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_battery_power'
ELSE EXEC sys.sp_updateextendedproperty
@name=N'version',
@value=3,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_battery_power';
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_battery_power_bess' and xtype='U')
CREATE TABLE "teleport_battery_power_bess"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL,
"asset_identifier" varchar(128) NOT NULL,
"bess_identifier" varchar(128) NOT NULL,
"attempt" int NOT NULL,
"cell_temperature_min" decimal(6,2) DEFAULT NULL, -- in ºC, min value of all cells
"cell_temperature_max" decimal(6,2) DEFAULT NULL, -- in ºC, max value of all cells
"room_temperature" decimal(6,2) DEFAULT NULL, -- in ºC, max value of all cells
"state_of_charge" decimal(7,4) DEFAULT NULL, -- in %, nonnegative
"available_energy" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"available_active_power_charge" decimal(23,3) DEFAULT NULL, -- in W, nonnegative
"available_active_power_discharge" decimal(23,3) DEFAULT NULL, -- in W, nonnegative
"three_phase_connection_type_low_voltage" varchar(32) DEFAULT NULL, -- can be "wye" or "delta"
"ac_voltage_low_voltage_phase_l1" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_low_voltage_phase_l2" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_low_voltage_phase_l3" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_low_voltage_line_l1" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_low_voltage_line_l2" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_voltage_low_voltage_line_l3" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"ac_current_low_voltage_phase_l1" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_low_voltage_phase_l2" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_low_voltage_phase_l3" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_low_voltage_line_l1" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_low_voltage_line_l2" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"ac_current_low_voltage_line_l3" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"warnings" nvarchar(4000) DEFAULT NULL, -- if not null, will contain a JSON aray of string elements. see error codes section
"errors" nvarchar(4000) DEFAULT NULL, -- if not null, will contain a JSON array of string elements. see error codes section
"scheduled" bit NOT NULL, -- false for measurements that are not part of the regular reporting interval, eg. directly after command execution and at Teleport initialisation
"measured_at" datetime NOT NULL, -- when read-out started
"created_at" datetime NOT NULL, -- when written to the table
PRIMARY KEY ("id"),
INDEX "bess" ("bess_identifier","created_at"),
INDEX "teleport" ("teleport_hash_id","asset_identifier","created_at"),
INDEX "teleport_asset" UNIQUE ("teleport_hash_id", "asset_identifier", "bess_identifier", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_battery_power_bess_rack' and xtype='U')
CREATE TABLE "teleport_battery_power_bess_rack"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL,
"asset_identifier" varchar(128) NOT NULL,
"bess_identifier" varchar(128) NOT NULL,
"rack_identifier" varchar(128) NOT NULL,
"attempt" int NOT NULL,
"dc_voltage" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"dc_current" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"scheduled" bit NOT NULL, -- false for measurements that are not part of the regular reporting interval, eg. directly after command execution and at Teleport initialisation
"measured_at" datetime NOT NULL, -- when read-out started
"created_at" datetime NOT NULL, -- when written to the table
PRIMARY KEY ("id"),
INDEX "bess_rack" ("rack_identifier","created_at"),
INDEX "bess" ("bess_identifier","created_at"),
INDEX "teleport" ("teleport_hash_id","asset_identifier","created_at"),
INDEX "teleport_asset" UNIQUE ("teleport_hash_id", "asset_identifier", "bess_identifier", "rack_identifier", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_battery_power_flash' and xtype='U')
CREATE TABLE "teleport_battery_power_flash"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL,
"asset_identifier" varchar(128) NOT NULL,
"attempt" int NOT NULL,
"frequency" decimal(7,2) DEFAULT NULL, -- in Hz, nonnegative
"active_power" decimal(23,3) DEFAULT NULL, -- in W, positive means discharging, negative charging
"state_of_charge" decimal(7,4) DEFAULT NULL, -- in %, nonnegative
"available_energy" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"available_active_power_charge" decimal(23,3) DEFAULT NULL, -- in W, nonnegative
"available_active_power_discharge" decimal(23,3) DEFAULT NULL, -- in W, nonnegative
"scheduled" bit NOT NULL, -- false for measurements that are not part of the regular reporting interval, eg. directly after command execution and at Teleport initialisation
"measured_at" datetime NOT NULL, -- when read-out started
"created_at" datetime NOT NULL, -- when written to the table
PRIMARY KEY ("id"),
INDEX "teleport" ("teleport_hash_id","created_at"),
INDEX "teleport_asset" UNIQUE ("teleport_hash_id", "asset_identifier", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);
IF NOT EXISTS (SELECT NULL FROM SYS.EXTENDED_PROPERTIES WHERE [major_id] = OBJECT_ID('teleport_battery_power_flash') AND [name] = N'version' AND [minor_id] = 0)
EXEC sys.sp_addextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_battery_power_flash'
ELSE EXEC sys.sp_updateextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_battery_power_flash';

Limit production power commands

The LimitProductionPower commands that you send in through our cloud API can also be forwarded.

USE master;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'teleport')
CREATE DATABASE teleport;
USE teleport;
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_command_limit_production_power' and xtype='U')
CREATE TABLE "teleport_command_limit_production_power"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL,
"asset_identifiers" varchar(max) DEFAULT NULL,
"attempt" int NOT NULL,
"start_at" datetime NOT NULL,
"end_at" datetime NOT NULL,
"active_power_limit_percentage" decimal(4,1) NOT NULL,
"received_at" datetime NOT NULL,
"created_at" datetime NOT NULL,
PRIMARY KEY ("id"),
INDEX "teleport_created_at" ("teleport_hash_id","created_at"),
INDEX "teleport_start_at" ("teleport_hash_id","start_at"),
INDEX "teleport_received_at" ("teleport_hash_id","received_at")
);
IF NOT EXISTS (SELECT NULL FROM SYS.EXTENDED_PROPERTIES WHERE [major_id] = OBJECT_ID('teleport_command_limit_production_power') AND [name] = N'version' AND [minor_id] = 0)
EXEC sys.sp_addextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_command_limit_production_power'
ELSE EXEC sys.sp_updateextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_command_limit_production_power';

Set battery operation commands

The SetBatteryOperation commands that you send in through our cloud API can also be forwarded.

USE master;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'teleport')
CREATE DATABASE teleport;
USE teleport;
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_command_set_battery_operation' and xtype='U')
CREATE TABLE "teleport_command_set_battery_operation"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL,
"asset_identifiers" varchar(max) DEFAULT NULL,
"attempt" int NOT NULL,
"start_at" datetime NOT NULL,
"end_at" datetime NOT NULL,
"dispatch_power_active_power" decimal(23,3) DEFAULT NULL,
"deliver_fcr_max_rate" decimal(23,3) DEFAULT NULL,
"charge_to_state_percentage" decimal(7,4) DEFAULT NULL,
"received_at" datetime NOT NULL,
"created_at" datetime NOT NULL,
PRIMARY KEY ("id"),
INDEX "teleport_created_at" ("teleport_hash_id","created_at"),
INDEX "teleport_start_at" ("teleport_hash_id","start_at"),
INDEX "teleport_received_at" ("teleport_hash_id","received_at")
);
IF NOT EXISTS (SELECT NULL FROM SYS.EXTENDED_PROPERTIES WHERE [major_id] = OBJECT_ID('teleport_command_set_battery_operation') AND [name] = N'version' AND [minor_id] = 0)
EXEC sys.sp_addextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_command_set_battery_operation'
ELSE EXEC sys.sp_updateextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_command_set_battery_operation';

Meter power

The schema for messages forwarded from a Teleport device that is connected to a meter:

USE master;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'teleport')
CREATE DATABASE teleport;
USE teleport;
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_meter_power' and xtype='U')
CREATE TABLE "teleport_meter_power"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL, -- uniquely identifies the teleport device
"asset_identifier" varchar(128) NOT NULL, -- globally unique identifier of the asset, when available the brand and serial number of the asset
"attempt" int NOT NULL, -- 0-indexed delivery attempt
"phase_voltage_l1" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"phase_voltage_l2" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"phase_voltage_l3" decimal(23,3) DEFAULT NULL, -- in V, nonnegative
"current_l1" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"current_l2" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"current_l3" decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
"active_power_l1" decimal(23,3) DEFAULT NULL, -- in W, delivering to the grid is a positive value
"active_power_l2" decimal(23,3) DEFAULT NULL, -- in W, delivering to the grid is a positive value
"active_power_l3" decimal(23,3) DEFAULT NULL, -- in W, delivering to the grid is a positive value
"active_power_sum" decimal(23,3) DEFAULT NULL, -- in W, delivering to the grid is a positive value
"reactive_power_l1" decimal(23,3) DEFAULT NULL, -- in var, positive is injecting reactive power to the grid and negative is absorbing reactive power
"reactive_power_l2" decimal(23,3) DEFAULT NULL, -- in var, positive is injecting reactive power to the grid and negative is absorbing reactive power
"reactive_power_l3" decimal(23,3) DEFAULT NULL, -- in var, positive is injecting reactive power to the grid and negative is absorbing reactive power
"reactive_power_sum" decimal(23,3) DEFAULT NULL, -- in var, positive is injecting reactive power to the grid and negative is absorbing reactive power
"frequency" decimal(7,2) DEFAULT NULL, -- in Hz, nonnegative
"active_energy_consumed_l1" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"active_energy_consumed_l2" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"active_energy_consumed_l3" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"active_energy_consumed_sum" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"active_energy_delivered_l1" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"active_energy_delivered_l2" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"active_energy_delivered_l3" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"active_energy_delivered_sum" decimal(23,3) DEFAULT NULL, -- in Wh, nonnegative
"scheduled" bit NOT NULL, -- false for measurements that are not part of the regular reporting interval, eg. directly after command execution and at Teleport initialisation
"measured_at" datetime NOT NULL, -- in UTC
"created_at" datetime NOT NULL, -- in UTC
PRIMARY KEY ("id"),
INDEX "teleport" ("teleport_hash_id","created_at"),
INDEX "teleport_asset" UNIQUE ("teleport_hash_id", "asset_identifier", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);
IF NOT EXISTS (SELECT NULL FROM SYS.EXTENDED_PROPERTIES WHERE [major_id] = OBJECT_ID('teleport_meter_power') AND [name] = N'version' AND [minor_id] = 0)
EXEC sys.sp_addextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_meter_power'
ELSE EXEC sys.sp_updateextendedproperty
@name=N'version',
@value=1,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_meter_power';