Skip to content

Forwarding to a MySQL database

We forward messages to a MySQL database by inserting rows into the table(s) we have been granted the INSERT and SELECT rights to.

Below the schemas for the following messages can be found:

Solar power

Solar assets produce two types of messages: regular messages and environmental sensor messages.

Regular messages

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

  • The active_power_limit_percentage field is deprecated and replaced by setpoints_confirmed_active_power_limit_percentage.
CREATE TABLE `teleport_solar_power` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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 unsigned NOT NULL, -- 0-indexed delivery attempt
`active_power` decimal(23,3) DEFAULT NULL, -- in W
`reactive_power` decimal(23,3) DEFAULT NULL, -- in var
`power_factor` decimal(5, 4) DEFAULT NULL, -- unitless. For capacitive loads (leading power factor, quadrant 4), the PF sign is positive. For inductive loads (lagging power factor, quadrants 1), the PF sign is negative.
`generated_energy` decimal(23,3) DEFAULT NULL, -- in Wh
`setpoints_confirmed_active_power_limit_percentage` decimal(4, 1) DEFAULT NULL, -- in %
`setpoints_confirmed_active_power_limit` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_confirmed_reactive_power_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_confirmed_reactive_power_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_confirmed_reactive_power_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_desired_active_power_limit_cloud` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_active_control` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_grid_operator` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_modbus_server` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_afrr_delta` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_afrr_reference` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_reactive_power_cloud_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_desired_reactive_power_cloud_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_desired_reactive_power_cloud_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_desired_reactive_power_grid_operator_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_desired_reactive_power_grid_operator_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_desired_reactive_power_grid_operator_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_effective_active_power_limit` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_effective_reactive_power_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_effective_reactive_power_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_effective_reactive_power_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`alarms` JSON DEFAULT NULL, -- See solar alarms under error codes section. Empty if inverter-specific alarms are present in inverter array. If not null, will contain a JSON aray of string elements.
`scheduled` tinyint(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`),
KEY `teleport` (`teleport_hash_id`,`created_at`),
UNIQUE KEY `teleport_asset` (`teleport_hash_id`,`asset_identifier`,`measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":5}';
CREATE TABLE `teleport_solar_power_inverters` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`teleport_hash_id` varchar(32) NOT NULL,
`asset_identifier` varchar(128) NOT NULL,
`slave_id` INT NOT NULL,
`attempt` INT NOT NULL,
`active_power` decimal(23,3) DEFAULT NULL, -- in W
`reactive_power` decimal(23,3) DEFAULT NULL, -- in var
`power_factor` decimal(5, 4) DEFAULT NULL, -- unitless. For capacitive loads (leading power factor, quadrant 4), the PF sign is positive. For inductive loads (lagging power factor, quadrants 1), the PF sign is negative.
`generated_energy` decimal(23, 3) DEFAULT NULL,
`setpoints_confirmed_active_power_limit_percentage` decimal(4, 1) DEFAULT NULL, -- in %
`setpoints_confirmed_active_power_limit` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_confirmed_reactive_power_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_confirmed_reactive_power_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_confirmed_reactive_power_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`alarms` JSON DEFAULT NULL,
`scheduled` tinyint(1) NOT NULL,
`measured_at` datetime NOT NULL,
`created_at` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY inverter (`slave_id`, `created_at`),
KEY teleport (`teleport_hash_id`, `asset_identifier`, `created_at`),
UNIQUE KEY teleport_asset (`teleport_hash_id`, `asset_identifier`, `slave_id`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":5}';

Environmental sensor messages

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

CREATE TABLE `teleport_environmental_sensors` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`teleport_hash_id` varchar(32) NOT NULL,
`asset_identifier` varchar(128) NOT NULL,
`sensor_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,
`irradiance` decimal(23, 3) DEFAULT NULL, -- in W/m²
`irradiance_factor` decimal(23, 3) DEFAULT NULL, -- a static property defined as product of area and efficiency, used to calculate availableActivePower (area is the total surface area of the solar panels in square meters, efficiency is the efficiency of the solar panels + inverters)
`wind_speed` decimal(8, 3) DEFAULT NULL, -- in m/s
`scheduled` tinyint(1) NOT NULL,
`measured_at` datetime NOT NULL,
`created_at` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY sensor (`sensor_identifier`, `created_at`),
KEY teleport (`teleport_hash_id`, `asset_identifier`, `created_at`),
UNIQUE KEY teleport_asset (`teleport_hash_id`, `asset_identifier`, `sensor_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":1}';
CREATE TABLE `teleport_environmental_sensors_temperature` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`teleport_hash_id` varchar(32) NOT NULL,
`asset_identifier` varchar(128) NOT NULL,
`sensor_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,
`name` varchar(128) NOT NULL, -- representing temperature measurement
`temperature` decimal(6,2) DEFAULT NULL, -- in °C
`scheduled` tinyint(1) NOT NULL,
`measured_at` datetime NOT NULL,
`created_at` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY sensor_temperature (`name`, `created_at`),
KEY sensor (`sensor_identifier`, `created_at`),
KEY teleport (`teleport_hash_id`, `asset_identifier`, `created_at`),
UNIQUE KEY teleport_asset (`teleport_hash_id`, `asset_identifier`, `sensor_identifier`, `name`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":1}';

Wind power

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

  • The active_power_limit_percentage field is deprecated and replaced by setpoints_confirmed_active_power_limit_percentage.
CREATE TABLE `teleport_wind_power` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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 unsigned NOT NULL, -- 0-indexed delivery attempt
`active_power` decimal(23,3) DEFAULT NULL, -- in W
`reactive_power` decimal(23,3) DEFAULT NULL, -- in var
`power_factor` decimal(5, 4) DEFAULT NULL, -- unitless. For capacitive loads (leading power factor, quadrant 4), the PF sign is positive. For inductive loads (lagging power factor, quadrants 1), the PF sign is negative.
`wind_speed` decimal(8,3) DEFAULT NULL, -- in m/s
`available_active_power` decimal(23,3) DEFAULT NULL, -- in W
`constrained_available_active_power_current_wind` decimal(23,3) DEFAULT NULL, -- in W
`constrained_available_active_power_technical` decimal(23,3) DEFAULT NULL, -- in W
`constrained_available_active_power_force_majeure` decimal(23,3) DEFAULT NULL, -- in W
`constrained_available_active_power_external_setpoints` decimal(23,3) DEFAULT NULL, -- in W
`setpoints_confirmed_active_power_limit_percentage` decimal(4, 1) DEFAULT NULL, -- in %
`setpoints_confirmed_active_power_limit` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_confirmed_reactive_power_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_confirmed_reactive_power_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_confirmed_reactive_power_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_desired_active_power_limit_cloud` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_active_control` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_grid_operator` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_modbus_server` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_afrr_delta` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_limit_afrr_reference` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_desired_reactive_power_cloud_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_desired_reactive_power_cloud_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_desired_reactive_power_cloud_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_desired_reactive_power_grid_operator_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_desired_reactive_power_grid_operator_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_desired_reactive_power_grid_operator_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_effective_active_power_limit` decimal(23, 3) DEFAULT NULL, -- in W
`setpoints_effective_reactive_power_reactive_power` decimal(23, 3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_effective_reactive_power_power_factor` decimal(5, 4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_effective_reactive_power_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`generated_energy` decimal(23,3) DEFAULT NULL, -- in Wh
`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`),
KEY `teleport` (`teleport_hash_id`,`created_at`),
UNIQUE KEY `teleport_asset` (`teleport_hash_id`, `asset_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":5}';
CREATE TABLE `teleport_wind_power_converters` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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 unsigned NOT NULL, -- 0-indexed delivery attempt
`active_power` decimal(23,3) DEFAULT NULL, -- in W
`reactive_power` decimal(23,3) DEFAULT NULL, -- in var
`power_factor` decimal(5, 4) DEFAULT NULL, -- unitless. For capacitive loads (leading power factor, quadrant 4), the PF sign is positive. For inductive loads (lagging power factor, quadrants 1), the PF sign is negative.
`wind_speed` decimal(8,3) DEFAULT NULL, -- in m/s
`generated_energy` decimal(23,3) DEFAULT NULL, -- in Wh
`status` varchar(32) DEFAULT NULL, -- can be "running", "on", "pause", "stop"
`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`),
KEY `converter` (`converter_identifier`, `created_at`),
KEY `teleport` (`teleport_hash_id`, `asset_identifier`, `created_at`),
UNIQUE KEY `teleport_asset_converter` (`teleport_hash_id`, `asset_identifier`, `converter_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":5}';

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.

Regular messages in full

An example of a request containing one message forwarded from a Teleport device that is connected to a battery:

  • The configuration object is deprecated and replaced by setpoints.
  • Mappings are applied as follows:
    • configuration_dispatch_power_active_power = setpoints_confirmed_active_power.
    • configuration_deliver_fcr_max_rate = setpoints_confirmed_deliver_fcr.
    • configuration_charge_to_state_percentage = setpoints_confirmed_charge_to_percentage.
  • Following properties are renamed and new columns are created
    • active_power_setpoint_dispatch_power to active_power_setpoint_active_power
    • active_power_setpoint_charge_to_state to active_power_setpoint_charge_to_percentage
CREATE TABLE `teleport_battery_power` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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,
`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
`power_factor` decimal(5, 4) DEFAULT NULL, -- unitless. For capacitive loads (leading power factor, quadrant 4), the PF sign is positive. For inductive loads (lagging power factor, quadrants 1), the PF sign is negative.
`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_active_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_percentage` 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
`setpoints_confirmed_active_power` decimal(23,3) DEFAULT NULL, -- in W, positive means discharging, negative charging.
`setpoints_confirmed_reactive_power_reactive_power` decimal(23,3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_confirmed_reactive_power_power_factor` decimal(5,4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_confirmed_reactive_power_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_confirmed_deliver_fcr` decimal(23,3) DEFAULT NULL, -- in W, nonnegative
`setpoints_confirmed_charge_to_percentage` decimal(7,4) DEFAULT NULL, -- in %, nonnegative
`setpoints_desired_active_power_cloud` decimal(23,3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_active_control` decimal(23,3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_grid_operator` decimal(23,3) DEFAULT NULL, -- in W
`setpoints_desired_active_power_modbus_server` decimal(23,3) DEFAULT NULL, -- in W
`setpoints_desired_reactive_power_cloud_reactive_power` decimal(23,3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_desired_reactive_power_cloud_power_factor` decimal(5,4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_desired_reactive_power_cloud_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_desired_reactive_power_grid_operator_reactive_power` decimal(23,3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_desired_reactive_power_grid_operator_power_factor` decimal(5,4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_desired_reactive_power_grid_operator_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`setpoints_desired_charge_to_percentage_cloud` decimal(7,4) DEFAULT NULL, -- in %
`setpoints_desired_deliver_fcr_cloud` decimal(23,3) DEFAULT NULL, -- in W
`setpoints_effective_active_power` decimal(23,3) DEFAULT NULL, -- in W
`setpoints_effective_reactive_power_reactive_power` decimal(23,3) DEFAULT NULL, -- setpoint for "fixedReactivePower" mode, in var.
`setpoints_effective_reactive_power_power_factor` decimal(5,4) DEFAULT NULL, -- setpoint for "fixedPowerFactor" mode, unitless.
`setpoints_effective_reactive_power_mode` varchar(32) DEFAULT NULL, -- reactive power control mode, either "fixedReactivePower" or "fixedPowerFactor".
`warnings` JSON DEFAULT NULL, -- if not null, will contain a JSON aray of string elements. see error codes section
`errors` JSON 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` tinyint(1) 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`),
KEY `teleport` (`teleport_hash_id`,`created_at`),
UNIQUE KEY `teleport_asset` (`teleport_hash_id`, `asset_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":5}';
CREATE TABLE `teleport_battery_power_bess` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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
`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` JSON DEFAULT NULL, -- if not null, will contain a JSON aray of string elements. see error codes section
`errors` JSON DEFAULT NULL, -- if not null, will contain a JSON array of string elements. see error codes section
`scheduled` tinyint(1) 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`),
KEY `bess` (`bess_identifier`,`created_at`),
KEY `teleport` (`teleport_hash_id`,`asset_identifier`,`created_at`),
UNIQUE KEY `teleport_asset` (`teleport_hash_id`, `asset_identifier`, `bess_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":5}';
CREATE TABLE `teleport_battery_power_bess_rack` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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
`bess_identifier` varchar(128) NOT NULL,
`rack_identifier` varchar(128) NOT NULL,
`attempt` int NOT NULL,
`rack_status` varchar(32) DEFAULT NULL, -- can be "on", "off", "other" or null (see warning and errors in case of 'other')
`state_of_charge` decimal(7,4) DEFAULT NULL, -- in %, nonnegative, can be 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
`cell_temperature_min` decimal(6,2) DEFAULT NULL, -- in ºC, can be null, min value of all cells in the rack
`cell_temperature_cell_id_min` int unsigned DEFAULT NULL, -- can be null, numeric ID of the cell with the lowest temperature in the rack
`cell_temperature_max` decimal(6,2) DEFAULT NULL, -- in ºC, can be null, max value of all cells in the rack,
`cell_temperature_cell_id_max` int unsigned DEFAULT NULL, -- can be null, numeric ID of the cell with the highest temperature in the rack
`cell_voltage_min` decimal(6,3) DEFAULT NULL, -- in V, can be null, min value of all cells in the rack
`cell_voltage_cell_id_min` int unsigned DEFAULT NULL, -- can be null, numeric ID of the cell with the lowest voltage in the rack
`cell_voltage_max` decimal(6,3) DEFAULT NULL, -- in V, can be null, max value of all cells in the rack
`cell_voltage_cell_id_max` int unsigned DEFAULT NULL, -- can be null, numeric ID of the cell with the highest voltage in the rack
`cell_voltage_average` decimal(6,3) DEFAULT NULL, -- in V, can be null, average value of all cells in the rack
`scheduled` tinyint(1) 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`),
KEY `bess` (`bess_identifier`,`created_at`),
KEY `bess_rack` (`rack_identifier`,`created_at`),
KEY `teleport` (`teleport_hash_id`,`asset_identifier`,`created_at`),
UNIQUE KEY `teleport_asset` (`teleport_hash_id`, `asset_identifier`, `bess_identifier`, `rack_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":5}';

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.

CREATE TABLE `teleport_battery_power_flash` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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,
`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` tinyint(1) 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`),
KEY `teleport` (`teleport_hash_id`,`created_at`),
UNIQUE KEY `teleport_asset` (`teleport_hash_id`, `asset_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":1}';

Thermal power

The schema for messages forwarded from a Teleport device that is connected to a thermal energy store:

CREATE TABLE `teleport_thermal_power` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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 unsigned NOT NULL, -- 0-indexed delivery attempt
`asset_clock_at` datetime DEFAULT NULL, -- time as reported by the asset, in UTC. Slight delay compared to measured_at could be explained by communication time with the asset
`configuration_furnace_temperature_min` decimal(6,2) DEFAULT NULL, -- in ºC
`configuration_furnace_temperature_max` decimal(6,2) DEFAULT NULL, -- in ºC
`uptime_plc` int DEFAULT NULL, -- in minutes
`uptime_system` int DEFAULT NULL, -- in minutes
`uptime_furnaces` int DEFAULT NULL, -- in minutes
`uptime_fan` int DEFAULT NULL, -- in minutes
`warnings` JSON DEFAULT NULL, -- if not null, will contain a JSON aray of string elements. see error codes section
`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`),
KEY `teleport` (`teleport_hash_id`,`created_at`),
UNIQUE KEY `teleport_asset` (`teleport_hash_id`, `asset_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":1}';
CREATE TABLE `teleport_thermal_power_furnaces` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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
`furnace_identifier` varchar(128) NOT NULL, -- serial number of the converter
`attempt` int unsigned NOT NULL, -- 0-indexed delivery attempt
`temperature` decimal(6,2) DEFAULT NULL, -- in ºC
`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`),
KEY `furnace` (`furnace_identifier`, `created_at`),
KEY `teleport` (`teleport_hash_id`, `asset_identifier`, `created_at`),
UNIQUE KEY `teleport_asset_furnace` (`teleport_hash_id`, `asset_identifier`, `furnace_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":1}';

Meter power

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

  • The phase voltage values are mapped to corresponding phase voltage fields:
  • voltage_phase_l1 = phase_voltage_l1, voltage_phase_l2 = phase_voltage_l2, voltage_phase_l3 = phase_voltage_l3.
  • The line voltage fields are set to NULL, based on the assumption that all connection types are wye-connected, where phase and line voltages are not equal.
  • Current values are mapped to both phase and line fields, as in wye-connected metering, phase and line currents are equal:
  • current_phase_l1 = current_l1, current_phase_l2 = current_l2, current_phase_l3 = current_l3.
  • current_line_l1 = current_l1, current_line_l2 = current_l2, current_line_l3 = current_l3.
CREATE TABLE `teleport_meter_power` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`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
`voltage_phase_l1` decimal(23,3) DEFAULT NULL, -- in V, nonnegative
`voltage_phase_l2` decimal(23,3) DEFAULT NULL, -- in V, nonnegative
`voltage_phase_l3` decimal(23,3) DEFAULT NULL, -- in V, nonnegative
`voltage_line_l1` decimal(23,3) DEFAULT NULL, -- in V, nonnegative
`voltage_line_l2` decimal(23,3) DEFAULT NULL, -- in V, nonnegative
`voltage_line_l3` decimal(23,3) DEFAULT NULL, -- in V, nonnegative
`current_phase_l1` decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
`current_phase_l2` decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
`current_phase_l3` decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
`current_line_l1` decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
`current_line_l2` decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
`current_line_l3` decimal(23,3) DEFAULT NULL, -- in A, delivering to the grid is a positive value
`three_phase_connection_type` varchar(32) DEFAULT NULL, -- can be "wye" or "delta"
`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
`apparent_power_l1` decimal(23,3) DEFAULT NULL, -- in VA, nonnegative
`apparent_power_l2` decimal(23,3) DEFAULT NULL, -- in VA, nonnegative
`apparent_power_l3` decimal(23,3) DEFAULT NULL, -- in VA, nonnegative
`apparent_power_sum` decimal(23,3) DEFAULT NULL, -- in VA, nonnegative
`power_factor_l1` decimal(5, 4) DEFAULT NULL, -- unitless. For capacitive loads (leading power factor, quadrants 2 and 4), the PF sign is positive. For inductive loads (lagging power factor, quadrants 1 and 3), the PF sign is negative.
`power_factor_l2` decimal(5, 4) DEFAULT NULL, -- unitless. For capacitive loads (leading power factor, quadrants 2 and 4), the PF sign is positive. For inductive loads (lagging power factor, quadrants 1 and 3), the PF sign is negative.
`power_factor_l3` decimal(5, 4) DEFAULT NULL, -- unitless. For capacitive loads (leading power factor, quadrants 2 and 4), the PF sign is positive. For inductive loads (lagging power factor, quadrants 1 and 3), the PF sign is negative.
`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
`errors` JSON DEFAULT NULL, -- if not null, will contain a JSON array of string elements. see error codes section
`scheduled` tinyint(1) 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, in UTC
`created_at` datetime NOT NULL, -- when row was written, in UTC
PRIMARY KEY (`id`),
KEY `teleport` (`teleport_hash_id`,`created_at`),
UNIQUE KEY `teleport_asset` (`teleport_hash_id`, `asset_identifier`, `measured_at`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='{"version":2}';