From 5dd31a8abbb72ba5b4b56e3a5a3e9e81c02ee933 Mon Sep 17 00:00:00 2001 From: nengyuanzhang <13011132526@163.com> Date: Mon, 18 Dec 2023 18:02:40 +0800 Subject: [PATCH] added energy storage power station actions to myems-api added energy storage power station UI to myems-admin --- CHANGELOG.md | 2 + myems-admin/app/config.router.js | 12 + ...gystoragepowerstationbattery.controller.js | 241 ++ ...nergystoragepowerstationgrid.controller.js | 236 ++ ...nergystoragepowerstationload.controller.js | 233 ++ ...stationpowerconversionsystem.controller.js | 314 ++ ...rgystoragepowerstationsensor.controller.js | 110 + ...nergystoragepowerstationuser.controller.js | 110 + ...nergystoragepowerstationbattery.service.js | 46 + .../energystoragepowerstationgrid.service.js | 45 + .../energystoragepowerstationload.service.js | 45 + ...werstationpowerconversionsystem.service.js | 45 + ...energystoragepowerstationsensor.service.js | 30 + .../energystoragepowerstationuser.service.js | 30 + myems-admin/app/translations.js | 1194 ++++++- .../energystoragepowerstation.html | 417 +++ ...nergystoragepowerstationbattery.model.html | 85 + .../energystoragepowerstationgrid.model.html | 59 + .../energystoragepowerstationload.model.html | 48 + ...werstationpowerconversionsystem.model.html | 358 ++ myems-api/MyEMS.postman_collection.json | 998 +++++- myems-api/app.py | 24 + myems-api/core/energystoragepowerstation.py | 3013 ++++++++++++++++- 23 files changed, 7564 insertions(+), 131 deletions(-) create mode 100644 myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationbattery.controller.js create mode 100644 myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationgrid.controller.js create mode 100644 myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationload.controller.js create mode 100644 myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.controller.js create mode 100644 myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationsensor.controller.js create mode 100644 myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationuser.controller.js create mode 100644 myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationbattery.service.js create mode 100644 myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationgrid.service.js create mode 100644 myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationload.service.js create mode 100644 myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.service.js create mode 100644 myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationsensor.service.js create mode 100644 myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationuser.service.js create mode 100644 myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationbattery.model.html create mode 100644 myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationgrid.model.html create mode 100644 myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationload.model.html create mode 100644 myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.model.html diff --git a/CHANGELOG.md b/CHANGELOG.md index ad456ef46d..ebd950c0ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - ### Added - added tables for energy storage power station in database +- added energy storage power station actions to myems-api +- added energy storage power station UI to myems-admin - ### Changed - changed microgrid monitoring in myems-web diff --git a/myems-admin/app/config.router.js b/myems-admin/app/config.router.js index 20035aea08..a86140afb8 100644 --- a/myems-admin/app/config.router.js +++ b/myems-admin/app/config.router.js @@ -1266,11 +1266,23 @@ app serie: true, files: [ 'app/services/settings/energystoragepowerstation/energystoragepowerstation.service.js', + 'app/services/settings/energystoragepowerstation/energystoragepowerstationbattery.service.js', + 'app/services/settings/energystoragepowerstation/energystoragepowerstationgrid.service.js', + 'app/services/settings/energystoragepowerstation/energystoragepowerstationload.service.js', + 'app/services/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.service.js', + 'app/services/settings/energystoragepowerstation/energystoragepowerstationsensor.service.js', + 'app/services/settings/energystoragepowerstation/energystoragepowerstationuser.service.js', 'app/services/settings/costcenter/costcenter.service.js', 'app/services/settings/contact/contact.service.js', 'app/services/settings/datasource/point.service.js', 'app/controllers/settings/energystoragepowerstation/energystoragepowerstation.master.controller.js', 'app/controllers/settings/energystoragepowerstation/energystoragepowerstation.controller.js', + 'app/controllers/settings/energystoragepowerstation/energystoragepowerstationbattery.controller.js', + 'app/controllers/settings/energystoragepowerstation/energystoragepowerstationgrid.controller.js', + 'app/controllers/settings/energystoragepowerstation/energystoragepowerstationload.controller.js', + 'app/controllers/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.controller.js', + 'app/controllers/settings/energystoragepowerstation/energystoragepowerstationsensor.controller.js', + 'app/controllers/settings/energystoragepowerstation/energystoragepowerstationuser.controller.js', ] }]); } diff --git a/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationbattery.controller.js b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationbattery.controller.js new file mode 100644 index 0000000000..f031edfaaa --- /dev/null +++ b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationbattery.controller.js @@ -0,0 +1,241 @@ +'use strict'; + +app.controller('EnergyStoragePowerStationBatteryController', function( + $scope, + $rootScope, + $window, + $translate, + $uibModal, + EnergyStoragePowerStationService, + EnergyStoragePowerStationBatteryService, + PointService, + MeterService, + toaster, + SweetAlert) { + $scope.energystoragepowerstations = []; + $scope.energystoragepowerstationbatteries = []; + $scope.points = []; + $scope.meters = []; + $scope.currentEnergyStoragePowerStation = null; + $scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user")); + $scope.getAllEnergyStoragePowerStations = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationService.getAllEnergyStoragePowerStations(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstations = response.data; + } else { + $scope.energystoragepowerstations = []; + } + }); + }; + + $scope.getAllPoints = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + PointService.getAllPoints(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.points = response.data; + } else { + $scope.points = []; + } + }); + }; + + $scope.getAllMeters = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + MeterService.getAllMeters(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.meters = response.data; + } else { + $scope.meters = []; + } + }); + }; + + $scope.getEnergyStoragePowerStationBatteriesByEnergyStoragePowerStationID = function(id) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationBatteryService.getEnergyStoragePowerStationBatteriesByEnergyStoragePowerStationID(id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstationbatteries = response.data; + } else { + $scope.energystoragepowerstationbatteries=[]; + } + }); + }; + + $scope.changeEnergyStoragePowerStation=function(item,model){ + $scope.currentEnergyStoragePowerStation=item; + $scope.currentEnergyStoragePowerStation.selected=model; + $scope.is_show_add_energystoragepowerstation_battery = true; + $scope.getEnergyStoragePowerStationBatteriesByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + }; + + $scope.addEnergyStoragePowerStationBattery = function() { + + var modalInstance = $uibModal.open({ + templateUrl: 'views/settings/energystoragepowerstation/energystoragepowerstationbattery.model.html', + controller: 'ModalAddEnergyStoragePowerStationBatteryCtrl', + windowClass: "animated fadeIn", + resolve: { + params: function() { + return { + meters: angular.copy($scope.meters), + points: angular.copy($scope.points), + }; + } + } + }); + modalInstance.result.then(function(energystoragepowerstationbattery) { + energystoragepowerstationbattery.battery_state_point_id = energystoragepowerstationbattery.battery_state_point.id; + energystoragepowerstationbattery.soc_point_id = energystoragepowerstationbattery.soc_point.id; + energystoragepowerstationbattery.power_point_id = energystoragepowerstationbattery.power_point.id; + energystoragepowerstationbattery.charge_meter_id = energystoragepowerstationbattery.charge_meter.id; + energystoragepowerstationbattery.discharge_meter_id = energystoragepowerstationbattery.discharge_meter.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationBatteryService.addEnergyStoragePowerStationBattery($scope.currentEnergyStoragePowerStation.id, energystoragepowerstationbattery, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 201) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_ADD_BODY", {template: $translate.instant("MICROGRID.MICROGRID_BATTERY")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationBatteriesByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationBatteryChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_ADD_BODY", {template: $translate.instant("MICROGRID.MICROGRID_BATTERY")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }, function() { + + }); + $rootScope.modalInstance = modalInstance; + }; + + $scope.editEnergyStoragePowerStationBattery = function(energystoragepowerstationbattery) { + var modalInstance = $uibModal.open({ + templateUrl: 'views/settings/energystoragepowerstation/energystoragepowerstationbattery.model.html', + controller: 'ModalEditEnergyStoragePowerStationBatteryCtrl', + windowClass: "animated fadeIn", + resolve: { + params: function() { + return { + energystoragepowerstationbattery: angular.copy(energystoragepowerstationbattery), + meters: angular.copy($scope.meters), + points: angular.copy($scope.points), + }; + } + } + }); + + modalInstance.result.then(function(modifiedEnergyStoragePowerStationBattery) { + modifiedEnergyStoragePowerStationBattery.battery_state_point_id = modifiedEnergyStoragePowerStationBattery.battery_state_point.id; + modifiedEnergyStoragePowerStationBattery.soc_point_id = modifiedEnergyStoragePowerStationBattery.soc_point.id; + modifiedEnergyStoragePowerStationBattery.power_point_id = modifiedEnergyStoragePowerStationBattery.power_point.id; + modifiedEnergyStoragePowerStationBattery.charge_meter_id = modifiedEnergyStoragePowerStationBattery.charge_meter.id; + modifiedEnergyStoragePowerStationBattery.discharge_meter_id = modifiedEnergyStoragePowerStationBattery.discharge_meter.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationBatteryService.editEnergyStoragePowerStationBattery($scope.currentEnergyStoragePowerStation.id, modifiedEnergyStoragePowerStationBattery, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_UPDATE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_BATTERY")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationBatteriesByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationBatteryChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_UPDATE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_BATTERY")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }, function() { + //do nothing; + }); + $rootScope.modalInstance = modalInstance; + }; + + $scope.deleteEnergyStoragePowerStationBattery = function(energystoragepowerstationbattery) { + SweetAlert.swal({ + title: $translate.instant("SWEET.TITLE"), + text: $translate.instant("SWEET.TEXT"), + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55", + confirmButtonText: $translate.instant("SWEET.CONFIRM_BUTTON_TEXT"), + cancelButtonText: $translate.instant("SWEET.CANCEL_BUTTON_TEXT"), + closeOnConfirm: true, + closeOnCancel: true + }, + function(isConfirm) { + if (isConfirm) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationBatteryService.deleteEnergyStoragePowerStationBattery($scope.currentEnergyStoragePowerStation.id, energystoragepowerstationbattery.id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 204) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_DELETE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_BATTERY")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationBatteriesByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationBatteryChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_DELETE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_BATTERY")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + } + }); + }; + + $scope.getAllEnergyStoragePowerStations(); + $scope.getAllPoints(); + $scope.getAllMeters(); + $scope.$on('handleBroadcastEnergyStoragePowerStationChanged', function(event) { + $scope.getAllEnergyStoragePowerStations(); + }); + + }); + + + app.controller('ModalAddEnergyStoragePowerStationBatteryCtrl', function($scope, $uibModalInstance, params) { + + $scope.operation = "MICROGRID.ADD_MICROGRID_BATTERY"; + $scope.points=params.points; + $scope.meters=params.meters; + $scope.ok = function() { + $uibModalInstance.close($scope.energystoragepowerstationbattery); + }; + + $scope.cancel = function() { + $uibModalInstance.dismiss('cancel'); + }; + }); + + app.controller('ModalEditEnergyStoragePowerStationBatteryCtrl', function($scope, $uibModalInstance, params) { + $scope.operation = "MICROGRID.EDIT_MICROGRID_BATTERY"; + $scope.energystoragepowerstationbattery = params.energystoragepowerstationbattery; + $scope.points=params.points; + $scope.meters=params.meters; + $scope.ok = function() { + $uibModalInstance.close($scope.energystoragepowerstationbattery); + }; + + $scope.cancel = function() { + $uibModalInstance.dismiss('cancel'); + }; + }); diff --git a/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationgrid.controller.js b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationgrid.controller.js new file mode 100644 index 0000000000..67ce4fd8bd --- /dev/null +++ b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationgrid.controller.js @@ -0,0 +1,236 @@ +'use strict'; + +app.controller('EnergyStoragePowerStationGridController', function( + $scope, + $rootScope, + $window, + $translate, + $uibModal, + EnergyStoragePowerStationService, + EnergyStoragePowerStationGridService, + PointService, + MeterService, + toaster, + SweetAlert) { + $scope.energystoragepowerstations = []; + $scope.energystoragepowerstationgrids = []; + $scope.points = []; + $scope.meters = []; + $scope.currentEnergyStoragePowerStation = null; + $scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user")); + $scope.getAllEnergyStoragePowerStations = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationService.getAllEnergyStoragePowerStations(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstations = response.data; + } else { + $scope.energystoragepowerstations = []; + } + }); + }; + + $scope.getAllPoints = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + PointService.getAllPoints(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.points = response.data; + } else { + $scope.points = []; + } + }); + }; + + $scope.getAllMeters = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + MeterService.getAllMeters(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.meters = response.data; + } else { + $scope.meters = []; + } + }); + }; + $scope.getEnergyStoragePowerStationGridsByEnergyStoragePowerStationID = function(id) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationGridService.getEnergyStoragePowerStationGridsByEnergyStoragePowerStationID(id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstationgrids = response.data; + } else { + $scope.energystoragepowerstationgrids=[]; + } + }); + }; + + $scope.changeEnergyStoragePowerStation=function(item,model){ + $scope.currentEnergyStoragePowerStation=item; + $scope.currentEnergyStoragePowerStation.selected=model; + $scope.is_show_add_energystoragepowerstation_grid = true; + $scope.getEnergyStoragePowerStationGridsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + }; + + $scope.addEnergyStoragePowerStationGrid = function() { + + var modalInstance = $uibModal.open({ + templateUrl: 'views/settings/energystoragepowerstation/energystoragepowerstationgrid.model.html', + controller: 'ModalAddEnergyStoragePowerStationGridCtrl', + windowClass: "animated fadeIn", + resolve: { + params: function() { + return { + meters: angular.copy($scope.meters), + points: angular.copy($scope.points), + }; + } + } + }); + modalInstance.result.then(function(energystoragepowerstationgrid) { + energystoragepowerstationgrid.power_point_id = energystoragepowerstationgrid.power_point.id; + energystoragepowerstationgrid.buy_meter_id = energystoragepowerstationgrid.buy_meter.id; + energystoragepowerstationgrid.sell_meter_id = energystoragepowerstationgrid.sell_meter.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationGridService.addEnergyStoragePowerStationGrid($scope.currentEnergyStoragePowerStation.id, energystoragepowerstationgrid, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 201) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_ADD_BODY", {template: $translate.instant("MICROGRID.MICROGRID_GRID")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationGridsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationGridChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_ADD_BODY", {template: $translate.instant("MICROGRID.MICROGRID_GRID")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }, function() { + + }); + $rootScope.modalInstance = modalInstance; + }; + + $scope.editEnergyStoragePowerStationGrid = function(energystoragepowerstationgrid) { + var modalInstance = $uibModal.open({ + templateUrl: 'views/settings/energystoragepowerstation/energystoragepowerstationgrid.model.html', + controller: 'ModalEditEnergyStoragePowerStationGridCtrl', + windowClass: "animated fadeIn", + resolve: { + params: function() { + return { + energystoragepowerstationgrid: angular.copy(energystoragepowerstationgrid), + meters: angular.copy($scope.meters), + points: angular.copy($scope.points), + }; + } + } + }); + + modalInstance.result.then(function(modifiedEnergyStoragePowerStationGrid) { + modifiedEnergyStoragePowerStationGrid.power_point_id = modifiedEnergyStoragePowerStationGrid.power_point.id; + modifiedEnergyStoragePowerStationGrid.buy_meter_id = modifiedEnergyStoragePowerStationGrid.buy_meter.id; + modifiedEnergyStoragePowerStationGrid.sell_meter_id = modifiedEnergyStoragePowerStationGrid.sell_meter.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationGridService.editEnergyStoragePowerStationGrid($scope.currentEnergyStoragePowerStation.id, modifiedEnergyStoragePowerStationGrid, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_UPDATE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_GRID")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationGridsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationGridChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_UPDATE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_GRID")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }, function() { + //do nothing; + }); + $rootScope.modalInstance = modalInstance; + }; + + $scope.deleteEnergyStoragePowerStationGrid = function(energystoragepowerstationgrid) { + SweetAlert.swal({ + title: $translate.instant("SWEET.TITLE"), + text: $translate.instant("SWEET.TEXT"), + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55", + confirmButtonText: $translate.instant("SWEET.CONFIRM_BUTTON_TEXT"), + cancelButtonText: $translate.instant("SWEET.CANCEL_BUTTON_TEXT"), + closeOnConfirm: true, + closeOnCancel: true + }, + function(isConfirm) { + if (isConfirm) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationGridService.deleteEnergyStoragePowerStationGrid($scope.currentEnergyStoragePowerStation.id, energystoragepowerstationgrid.id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 204) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_DELETE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_GRID")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationGridsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationGridChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_DELETE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_GRID")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + } + }); + }; + + $scope.getAllEnergyStoragePowerStations(); + $scope.getAllPoints(); + $scope.getAllMeters(); + $scope.$on('handleBroadcastEnergyStoragePowerStationChanged', function(event) { + $scope.getAllEnergyStoragePowerStations(); + }); + + }); + + + app.controller('ModalAddEnergyStoragePowerStationGridCtrl', function($scope, $uibModalInstance, params) { + + $scope.operation = "MICROGRID.ADD_MICROGRID_GRID"; + $scope.points=params.points; + $scope.meters=params.meters; + $scope.ok = function() { + $uibModalInstance.close($scope.energystoragepowerstationgrid); + }; + + $scope.cancel = function() { + $uibModalInstance.dismiss('cancel'); + }; + }); + + app.controller('ModalEditEnergyStoragePowerStationGridCtrl', function($scope, $uibModalInstance, params) { + $scope.operation = "MICROGRID.EDIT_MICROGRID_GRID"; + $scope.energystoragepowerstationgrid = params.energystoragepowerstationgrid; + $scope.points=params.points; + $scope.meters=params.meters; + $scope.ok = function() { + $uibModalInstance.close($scope.energystoragepowerstationgrid); + }; + + $scope.cancel = function() { + $uibModalInstance.dismiss('cancel'); + }; + }); diff --git a/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationload.controller.js b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationload.controller.js new file mode 100644 index 0000000000..daef2182d8 --- /dev/null +++ b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationload.controller.js @@ -0,0 +1,233 @@ +'use strict'; + +app.controller('EnergyStoragePowerStationLoadController', function( + $scope, + $rootScope, + $window, + $translate, + $uibModal, + EnergyStoragePowerStationService, + EnergyStoragePowerStationLoadService, + PointService, + MeterService, + toaster, + SweetAlert) { + $scope.energystoragepowerstations = []; + $scope.energystoragepowerstationloads = []; + $scope.points = []; + $scope.meters = []; + $scope.currentEnergyStoragePowerStation = null; + $scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user")); + $scope.getAllEnergyStoragePowerStations = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationService.getAllEnergyStoragePowerStations(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstations = response.data; + } else { + $scope.energystoragepowerstations = []; + } + }); + }; + + $scope.getAllPoints = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + PointService.getAllPoints(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.points = response.data; + } else { + $scope.points = []; + } + }); + }; + + $scope.getAllMeters = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + MeterService.getAllMeters(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.meters = response.data; + } else { + $scope.meters = []; + } + }); + }; + $scope.getEnergyStoragePowerStationLoadsByEnergyStoragePowerStationID = function(id) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationLoadService.getEnergyStoragePowerStationLoadsByEnergyStoragePowerStationID(id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstationloads = response.data; + } else { + $scope.energystoragepowerstationloads=[]; + } + }); + }; + + $scope.changeEnergyStoragePowerStation=function(item,model){ + $scope.currentEnergyStoragePowerStation=item; + $scope.currentEnergyStoragePowerStation.selected=model; + $scope.is_show_add_energystoragepowerstation_load = true; + $scope.getEnergyStoragePowerStationLoadsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + }; + + $scope.addEnergyStoragePowerStationLoad = function() { + var modalInstance = $uibModal.open({ + templateUrl: 'views/settings/energystoragepowerstation/energystoragepowerstationload.model.html', + controller: 'ModalAddEnergyStoragePowerStationLoadCtrl', + windowClass: "animated fadeIn", + resolve: { + params: function() { + return { + meters: angular.copy($scope.meters), + points: angular.copy($scope.points), + }; + } + } + }); + modalInstance.result.then(function(energystoragepowerstationload) { + energystoragepowerstationload.power_point_id = energystoragepowerstationload.power_point.id; + energystoragepowerstationload.meter_id = energystoragepowerstationload.meter.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationLoadService.addEnergyStoragePowerStationLoad($scope.currentEnergyStoragePowerStation.id, energystoragepowerstationload, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 201) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_ADD_BODY", {template: $translate.instant("MICROGRID.MICROGRID_LOAD")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationLoadsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationLoadChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_ADD_BODY", {template: $translate.instant("MICROGRID.MICROGRID_LOAD")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }, function() { + + }); + $rootScope.modalInstance = modalInstance; + }; + + $scope.editEnergyStoragePowerStationLoad = function(energystoragepowerstationload) { + var modalInstance = $uibModal.open({ + templateUrl: 'views/settings/energystoragepowerstation/energystoragepowerstationload.model.html', + controller: 'ModalEditEnergyStoragePowerStationLoadCtrl', + windowClass: "animated fadeIn", + resolve: { + params: function() { + return { + energystoragepowerstationload: angular.copy(energystoragepowerstationload), + meters: angular.copy($scope.meters), + points: angular.copy($scope.points), + }; + } + } + }); + + modalInstance.result.then(function(modifiedEnergyStoragePowerStationLoad) { + modifiedEnergyStoragePowerStationLoad.power_point_id = modifiedEnergyStoragePowerStationLoad.power_point.id; + modifiedEnergyStoragePowerStationLoad.meter_id = modifiedEnergyStoragePowerStationLoad.meter.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationLoadService.editEnergyStoragePowerStationLoad($scope.currentEnergyStoragePowerStation.id, modifiedEnergyStoragePowerStationLoad, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_UPDATE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_LOAD")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationLoadsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationLoadChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_UPDATE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_LOAD")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }, function() { + //do nothing; + }); + $rootScope.modalInstance = modalInstance; + }; + + $scope.deleteEnergyStoragePowerStationLoad = function(energystoragepowerstationload) { + SweetAlert.swal({ + title: $translate.instant("SWEET.TITLE"), + text: $translate.instant("SWEET.TEXT"), + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55", + confirmButtonText: $translate.instant("SWEET.CONFIRM_BUTTON_TEXT"), + cancelButtonText: $translate.instant("SWEET.CANCEL_BUTTON_TEXT"), + closeOnConfirm: true, + closeOnCancel: true + }, + function(isConfirm) { + if (isConfirm) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationLoadService.deleteEnergyStoragePowerStationLoad($scope.currentEnergyStoragePowerStation.id, energystoragepowerstationload.id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 204) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_DELETE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_LOAD")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationLoadsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationLoadChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_DELETE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_LOAD")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + } + }); + }; + + $scope.getAllEnergyStoragePowerStations(); + $scope.getAllPoints(); + $scope.getAllMeters(); + $scope.$on('handleBroadcastEnergyStoragePowerStationChanged', function(event) { + $scope.getAllEnergyStoragePowerStations(); + }); + + }); + + + app.controller('ModalAddEnergyStoragePowerStationLoadCtrl', function($scope, $uibModalInstance, params) { + + $scope.operation = "MICROGRID.ADD_MICROGRID_LOAD"; + $scope.points=params.points; + $scope.meters=params.meters; + $scope.ok = function() { + $uibModalInstance.close($scope.energystoragepowerstationload); + }; + + $scope.cancel = function() { + $uibModalInstance.dismiss('cancel'); + }; + }); + + app.controller('ModalEditEnergyStoragePowerStationLoadCtrl', function($scope, $uibModalInstance, params) { + $scope.operation = "MICROGRID.EDIT_MICROGRID_LOAD"; + $scope.energystoragepowerstationload = params.energystoragepowerstationload; + $scope.points=params.points; + $scope.meters=params.meters; + $scope.ok = function() { + $uibModalInstance.close($scope.energystoragepowerstationload); + }; + + $scope.cancel = function() { + $uibModalInstance.dismiss('cancel'); + }; + }); diff --git a/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.controller.js b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.controller.js new file mode 100644 index 0000000000..22ec0a99bd --- /dev/null +++ b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.controller.js @@ -0,0 +1,314 @@ +'use strict'; + +app.controller('EnergyStoragePowerStationPowerconversionsystemController', function( + $scope, + $rootScope, + $window, + $translate, + $uibModal, + EnergyStoragePowerStationService, + EnergyStoragePowerStationPowerconversionsystemService, + PointService, + MeterService, + CommandService, + toaster, + SweetAlert) { + $scope.energystoragepowerstations = []; + $scope.energystoragepowerstationpowerconversionsystems = []; + $scope.meters = []; + $scope.points = []; + $scope.commands = []; + $scope.currentEnergyStoragePowerStation = null; + $scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user")); + $scope.getAllEnergyStoragePowerStations = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationService.getAllEnergyStoragePowerStations(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstations = response.data; + } else { + $scope.energystoragepowerstations = []; + } + }); + }; + + $scope.getAllPoints = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + PointService.getAllPoints(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.points = response.data; + } else { + $scope.points = []; + } + }); + }; + + $scope.getAllMeters = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + MeterService.getAllMeters(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.meters = response.data; + } else { + $scope.meters = []; + } + }); + }; + + $scope.getAllCommands = function() { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + CommandService.getAllCommands(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.commands = response.data; + } else { + $scope.commands = []; + } + }); + }; + $scope.getEnergyStoragePowerStationPowerconversionsystemsByEnergyStoragePowerStationID = function(id) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationPowerconversionsystemService.getEnergyStoragePowerStationPowerconversionsystemsByEnergyStoragePowerStationID(id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstationpowerconversionsystems = response.data; + } else { + $scope.energystoragepowerstationpowerconversionsystems=[]; + } + }); + }; + + $scope.changeEnergyStoragePowerStation=function(item,model){ + $scope.currentEnergyStoragePowerStation=item; + $scope.currentEnergyStoragePowerStation.selected=model; + $scope.is_show_add_energystoragepowerstation_powerconversionsystem = true; + $scope.getEnergyStoragePowerStationPowerconversionsystemsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + }; + + $scope.addEnergyStoragePowerStationPowerconversionsystem = function() { + + var modalInstance = $uibModal.open({ + templateUrl: 'views/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.model.html', + controller: 'ModalAddEnergyStoragePowerStationPowerconversionsystemCtrl', + windowClass: "animated fadeIn", + resolve: { + params: function() { + return { + meters: angular.copy($scope.meters), + points: angular.copy($scope.points), + commands: angular.copy($scope.commands), + }; + } + } + }); + modalInstance.result.then(function(energystoragepowerstationpowerconversionsystem) { + energystoragepowerstationpowerconversionsystem.run_state_point_id = energystoragepowerstationpowerconversionsystem.run_state_point.id; + energystoragepowerstationpowerconversionsystem.charge_start_time1_point_id = energystoragepowerstationpowerconversionsystem.charge_start_time1_point.id; + energystoragepowerstationpowerconversionsystem.charge_end_time1_point_id = energystoragepowerstationpowerconversionsystem.charge_end_time1_point.id; + energystoragepowerstationpowerconversionsystem.charge_start_time2_point_id = energystoragepowerstationpowerconversionsystem.charge_start_time2_point.id; + energystoragepowerstationpowerconversionsystem.charge_end_time2_point_id = energystoragepowerstationpowerconversionsystem.charge_end_time2_point.id; + energystoragepowerstationpowerconversionsystem.charge_start_time3_point_id = energystoragepowerstationpowerconversionsystem.charge_start_time3_point.id; + energystoragepowerstationpowerconversionsystem.charge_end_time3_point_id = energystoragepowerstationpowerconversionsystem.charge_end_time3_point.id; + energystoragepowerstationpowerconversionsystem.charge_start_time4_point_id = energystoragepowerstationpowerconversionsystem.charge_start_time4_point.id; + energystoragepowerstationpowerconversionsystem.charge_end_time4_point_id = energystoragepowerstationpowerconversionsystem.charge_end_time4_point.id; + energystoragepowerstationpowerconversionsystem.discharge_start_time1_point_id = energystoragepowerstationpowerconversionsystem.discharge_start_time1_point.id; + energystoragepowerstationpowerconversionsystem.discharge_end_time1_point_id = energystoragepowerstationpowerconversionsystem.discharge_end_time1_point.id; + energystoragepowerstationpowerconversionsystem.discharge_start_time2_point_id = energystoragepowerstationpowerconversionsystem.discharge_start_time2_point.id; + energystoragepowerstationpowerconversionsystem.discharge_end_time2_point_id = energystoragepowerstationpowerconversionsystem.discharge_end_time2_point.id; + energystoragepowerstationpowerconversionsystem.discharge_start_time3_point_id = energystoragepowerstationpowerconversionsystem.discharge_start_time3_point.id; + energystoragepowerstationpowerconversionsystem.discharge_end_time3_point_id = energystoragepowerstationpowerconversionsystem.discharge_end_time3_point.id; + energystoragepowerstationpowerconversionsystem.discharge_start_time4_point_id = energystoragepowerstationpowerconversionsystem.discharge_start_time4_point.id; + energystoragepowerstationpowerconversionsystem.discharge_end_time4_point_id = energystoragepowerstationpowerconversionsystem.discharge_end_time4_point.id; + energystoragepowerstationpowerconversionsystem.charge_start_time1_command_id = energystoragepowerstationpowerconversionsystem.charge_start_time1_command.id; + energystoragepowerstationpowerconversionsystem.charge_end_time1_command_id = energystoragepowerstationpowerconversionsystem.charge_end_time1_command.id; + energystoragepowerstationpowerconversionsystem.charge_start_time2_command_id = energystoragepowerstationpowerconversionsystem.charge_start_time2_command.id; + energystoragepowerstationpowerconversionsystem.charge_end_time2_command_id = energystoragepowerstationpowerconversionsystem.charge_end_time2_command.id; + energystoragepowerstationpowerconversionsystem.charge_start_time3_command_id = energystoragepowerstationpowerconversionsystem.charge_start_time3_command.id; + energystoragepowerstationpowerconversionsystem.charge_end_time3_command_id = energystoragepowerstationpowerconversionsystem.charge_end_time3_command.id; + energystoragepowerstationpowerconversionsystem.charge_start_time4_command_id = energystoragepowerstationpowerconversionsystem.charge_start_time4_command.id; + energystoragepowerstationpowerconversionsystem.charge_end_time4_command_id = energystoragepowerstationpowerconversionsystem.charge_end_time4_command.id; + energystoragepowerstationpowerconversionsystem.discharge_start_time1_command_id = energystoragepowerstationpowerconversionsystem.discharge_start_time1_command.id; + energystoragepowerstationpowerconversionsystem.discharge_end_time1_command_id = energystoragepowerstationpowerconversionsystem.discharge_end_time1_command.id; + energystoragepowerstationpowerconversionsystem.discharge_start_time2_command_id = energystoragepowerstationpowerconversionsystem.discharge_start_time2_command.id; + energystoragepowerstationpowerconversionsystem.discharge_end_time2_command_id = energystoragepowerstationpowerconversionsystem.discharge_end_time2_command.id; + energystoragepowerstationpowerconversionsystem.discharge_start_time3_command_id = energystoragepowerstationpowerconversionsystem.discharge_start_time3_command.id; + energystoragepowerstationpowerconversionsystem.discharge_end_time3_command_id = energystoragepowerstationpowerconversionsystem.discharge_end_time3_command.id; + energystoragepowerstationpowerconversionsystem.discharge_start_time4_command_id = energystoragepowerstationpowerconversionsystem.discharge_start_time4_command.id; + energystoragepowerstationpowerconversionsystem.discharge_end_time4_command_id = energystoragepowerstationpowerconversionsystem.discharge_end_time4_command.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationPowerconversionsystemService.addEnergyStoragePowerStationPowerconversionsystem($scope.currentEnergyStoragePowerStation.id, energystoragepowerstationpowerconversionsystem, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 201) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_ADD_BODY", {template: $translate.instant("MICROGRID.MICROGRID_POWER_CONVERSION_SYSTEM")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationPowerconversionsystemsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationPowerconversionsystemChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_ADD_BODY", {template: $translate.instant("MICROGRID.MICROGRID_POWER_CONVERSION_SYSTEM")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }, function() { + + }); + $rootScope.modalInstance = modalInstance; + }; + + $scope.editEnergyStoragePowerStationPowerconversionsystem = function(energystoragepowerstationpowerconversionsystem) { + var modalInstance = $uibModal.open({ + templateUrl: 'views/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.model.html', + controller: 'ModalEditEnergyStoragePowerStationPowerconversionsystemCtrl', + windowClass: "animated fadeIn", + resolve: { + params: function() { + return { + energystoragepowerstationpowerconversionsystem: angular.copy(energystoragepowerstationpowerconversionsystem), + meters: angular.copy($scope.meters), + points: angular.copy($scope.points), + commands: angular.copy($scope.commands), + }; + } + } + }); + + modalInstance.result.then(function(modifiedEnergyStoragePowerStationPowerconversionsystem) { + modifiedEnergyStoragePowerStationPowerconversionsystem.run_state_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.run_state_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time1_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time1_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time1_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time1_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time2_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time2_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time2_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time2_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time3_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time3_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time3_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time3_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time4_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time4_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time4_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time4_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time1_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time1_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time1_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time1_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time2_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time2_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time2_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time2_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time3_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time3_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time3_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time3_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time4_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time4_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time4_point_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time4_point.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time1_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time1_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time1_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time1_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time2_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time2_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time2_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time2_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time3_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time3_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time3_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time3_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time4_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_start_time4_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time4_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.charge_end_time4_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time1_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time1_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time1_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time1_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time2_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time2_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time2_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time2_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time3_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time3_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time3_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time3_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time4_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_start_time4_command.id; + modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time4_command_id = modifiedEnergyStoragePowerStationPowerconversionsystem.discharge_end_time4_command.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationPowerconversionsystemService.editEnergyStoragePowerStationPowerconversionsystem($scope.currentEnergyStoragePowerStation.id, modifiedEnergyStoragePowerStationPowerconversionsystem, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_UPDATE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_POWER_CONVERSION_SYSTEM")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationPowerconversionsystemsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationPowerconversionsystemChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_UPDATE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_POWER_CONVERSION_SYSTEM")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }, function() { + //do nothing; + }); + $rootScope.modalInstance = modalInstance; + }; + + $scope.deleteEnergyStoragePowerStationPowerconversionsystem = function(energystoragepowerstationpowerconversionsystem) { + SweetAlert.swal({ + title: $translate.instant("SWEET.TITLE"), + text: $translate.instant("SWEET.TEXT"), + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55", + confirmButtonText: $translate.instant("SWEET.CONFIRM_BUTTON_TEXT"), + cancelButtonText: $translate.instant("SWEET.CANCEL_BUTTON_TEXT"), + closeOnConfirm: true, + closeOnCancel: true + }, + function(isConfirm) { + if (isConfirm) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationPowerconversionsystemService.deleteEnergyStoragePowerStationPowerconversionsystem($scope.currentEnergyStoragePowerStation.id, energystoragepowerstationpowerconversionsystem.id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 204) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.SUCCESS_DELETE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_POWER_CONVERSION_SYSTEM")}), + showCloseButton: true, + }); + $scope.getEnergyStoragePowerStationPowerconversionsystemsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + $scope.$emit('handleEmitEnergyStoragePowerStationPowerconversionsystemChanged'); + } else { + toaster.pop({ + type: "error", + title: $translate.instant("TOASTER.ERROR_DELETE_BODY", {template: $translate.instant("MICROGRID.MICROGRID_POWER_CONVERSION_SYSTEM")}), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + } + }); + }; + + $scope.getAllEnergyStoragePowerStations(); + $scope.getAllPoints(); + $scope.getAllMeters(); + $scope.getAllCommands(); + $scope.$on('handleBroadcastEnergyStoragePowerStationChanged', function(event) { + $scope.getAllEnergyStoragePowerStations(); + }); + + }); + + + app.controller('ModalAddEnergyStoragePowerStationPowerconversionsystemCtrl', function($scope, $uibModalInstance, params) { + + $scope.operation = "MICROGRID.ADD_MICROGRID_POWER_CONVERSION_SYSTEM"; + $scope.points=params.points; + $scope.meters=params.meters; + $scope.commands=params.commands; + $scope.ok = function() { + $uibModalInstance.close($scope.energystoragepowerstationpowerconversionsystem); + }; + + $scope.cancel = function() { + $uibModalInstance.dismiss('cancel'); + }; + }); + + app.controller('ModalEditEnergyStoragePowerStationPowerconversionsystemCtrl', function($scope, $uibModalInstance, params) { + $scope.operation = "MICROGRID.EDIT_MICROGRID_POWER_CONVERSION_SYSTEM"; + $scope.energystoragepowerstationpowerconversionsystem = params.energystoragepowerstationpowerconversionsystem; + $scope.points=params.points; + $scope.meters=params.meters; + $scope.commands=params.commands; + $scope.ok = function() { + $uibModalInstance.close($scope.energystoragepowerstationpowerconversionsystem); + }; + + $scope.cancel = function() { + $uibModalInstance.dismiss('cancel'); + }; + }); diff --git a/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationsensor.controller.js b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationsensor.controller.js new file mode 100644 index 0000000000..51206f39d4 --- /dev/null +++ b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationsensor.controller.js @@ -0,0 +1,110 @@ +'use strict'; + +app.controller('EnergyStoragePowerStationSensorController', function ( + $scope, + $window, + $translate, + EnergyStoragePowerStationService, + SensorService, + EnergyStoragePowerStationSensorService, + toaster, + SweetAlert) { + $scope.currentEnergyStoragePowerStation = {selected:undefined}; + $scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user")); + $scope.getAllSensors = function () { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + SensorService.getAllSensors(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.sensors = response.data; + } else { + $scope.sensors = []; + } + }); + }; + + $scope.getSensorsByEnergyStoragePowerStationID = function (id) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationSensorService.getSensorsByEnergyStoragePowerStationID(id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstationsensors = response.data; + } else { + $scope.energystoragepowerstationsensors = []; + } + }); + }; + + $scope.changeEnergyStoragePowerStation=function(item,model){ + $scope.currentEnergyStoragePowerStation=item; + $scope.currentEnergyStoragePowerStation.selected=model; + $scope.getSensorsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + }; + + $scope.getAllEnergyStoragePowerStations = function () { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationService.getAllEnergyStoragePowerStations(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstations = response.data; + } else { + $scope.energystoragepowerstations = []; + } + }); + }; + + $scope.pairSensor = function (dragEl, dropEl) { + var sensorid = angular.element('#' + dragEl).scope().sensor.id; + var energystoragepowerstationid = $scope.currentEnergyStoragePowerStation.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationSensorService.addPair(energystoragepowerstationid, sensorid, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 201) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.BIND_SENSOR_SUCCESS"), + showCloseButton: true, + }); + $scope.getSensorsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + } else { + toaster.pop({ + type: "error", + title: $translate.instant(response.data.title), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }; + + $scope.deleteSensorPair = function (dragEl, dropEl) { + if (angular.element('#' + dragEl).hasClass('source')) { + return; + } + var energystoragepowerstationsensorid = angular.element('#' + dragEl).scope().energystoragepowerstationsensor.id; + var energystoragepowerstationid = $scope.currentEnergyStoragePowerStation.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationSensorService.deletePair(energystoragepowerstationid, energystoragepowerstationsensorid, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 204) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.UNBIND_SENSOR_SUCCESS"), + showCloseButton: true, + }); + $scope.getSensorsByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + } else { + toaster.pop({ + type: "error", + title: $translate.instant(response.data.title), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }; + + $scope.getAllSensors(); + $scope.getAllEnergyStoragePowerStations(); + + $scope.$on('handleBroadcastEnergyStoragePowerStationChanged', function(event) { + $scope.getAllEnergyStoragePowerStations(); + }); +}); diff --git a/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationuser.controller.js b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationuser.controller.js new file mode 100644 index 0000000000..dcbb30341b --- /dev/null +++ b/myems-admin/app/controllers/settings/energystoragepowerstation/energystoragepowerstationuser.controller.js @@ -0,0 +1,110 @@ +'use strict'; + +app.controller('EnergyStoragePowerStationUserController', function ( + $scope, + $window, + $translate, + EnergyStoragePowerStationService, + UserService, + EnergyStoragePowerStationUserService, + toaster, + SweetAlert) { + $scope.currentEnergyStoragePowerStation = {selected:undefined}; + $scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user")); + $scope.getAllUsers = function () { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + UserService.getAllUsers(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.users = response.data; + } else { + $scope.users = []; + } + }); + }; + + $scope.getUsersByEnergyStoragePowerStationID = function (id) { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationUserService.getUsersByEnergyStoragePowerStationID(id, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstationusers = response.data; + } else { + $scope.energystoragepowerstationusers = []; + } + }); + }; + + $scope.changeEnergyStoragePowerStation=function(item,model){ + $scope.currentEnergyStoragePowerStation=item; + $scope.currentEnergyStoragePowerStation.selected=model; + $scope.getUsersByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + }; + + $scope.getAllEnergyStoragePowerStations = function () { + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationService.getAllEnergyStoragePowerStations(headers, function (response) { + if (angular.isDefined(response.status) && response.status === 200) { + $scope.energystoragepowerstations = response.data; + } else { + $scope.energystoragepowerstations = []; + } + }); + }; + + $scope.pairUser = function (dragEl, dropEl) { + var userid = angular.element('#' + dragEl).scope().user.id; + var energystoragepowerstationid = $scope.currentEnergyStoragePowerStation.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationUserService.addPair(energystoragepowerstationid, userid, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 201) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.BIND_USER_SUCCESS"), + showCloseButton: true, + }); + $scope.getUsersByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + } else { + toaster.pop({ + type: "error", + title: $translate.instant(response.data.title), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }; + + $scope.deleteUserPair = function (dragEl, dropEl) { + if (angular.element('#' + dragEl).hasClass('source')) { + return; + } + var energystoragepowerstationuserid = angular.element('#' + dragEl).scope().energystoragepowerstationuser.id; + var energystoragepowerstationid = $scope.currentEnergyStoragePowerStation.id; + let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }; + EnergyStoragePowerStationUserService.deletePair(energystoragepowerstationid, energystoragepowerstationuserid, headers, function (response) { + if (angular.isDefined(response.status) && response.status === 204) { + toaster.pop({ + type: "success", + title: $translate.instant("TOASTER.SUCCESS_TITLE"), + body: $translate.instant("TOASTER.UNBIND_USER_SUCCESS"), + showCloseButton: true, + }); + $scope.getUsersByEnergyStoragePowerStationID($scope.currentEnergyStoragePowerStation.id); + } else { + toaster.pop({ + type: "error", + title: $translate.instant(response.data.title), + body: $translate.instant(response.data.description), + showCloseButton: true, + }); + } + }); + }; + + $scope.getAllUsers(); + $scope.getAllEnergyStoragePowerStations(); + + $scope.$on('handleBroadcastEnergyStoragePowerStationChanged', function(event) { + $scope.getAllEnergyStoragePowerStations(); + }); +}); diff --git a/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationbattery.service.js b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationbattery.service.js new file mode 100644 index 0000000000..a6a5c987e2 --- /dev/null +++ b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationbattery.service.js @@ -0,0 +1,46 @@ +'use strict'; +app.factory('EnergyStoragePowerStationBatteryService', function($http) { + return { + getAllEnergyStoragePowerStationBatteries: function(headers, callback) { + $http.get(getAPI()+'energystoragepowerstationbatteries', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + getEnergyStoragePowerStationBatteriesByEnergyStoragePowerStationID: function(id, headers, callback) { + $http.get(getAPI()+'energystoragepowerstations/'+id+'/batteries', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + addEnergyStoragePowerStationBattery: function(id, energystoragepowerstationbattery, headers, callback) { + $http.post(getAPI()+'energystoragepowerstations/'+id+'/batteries',{data:energystoragepowerstationbattery}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + editEnergyStoragePowerStationBattery: function(id, energystoragepowerstationbattery, headers, callback) { + $http.put(getAPI()+'energystoragepowerstations/'+id+'/batteries/'+energystoragepowerstationbattery.id,{data:energystoragepowerstationbattery}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + + deleteEnergyStoragePowerStationBattery: function(id, energystoragepowerstationbatteryID, headers, callback) { + $http.delete(getAPI()+'energystoragepowerstations/'+id+'/batteries/'+energystoragepowerstationbatteryID, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + }; +}); diff --git a/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationgrid.service.js b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationgrid.service.js new file mode 100644 index 0000000000..c9b6afad7e --- /dev/null +++ b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationgrid.service.js @@ -0,0 +1,45 @@ +'use strict'; +app.factory('EnergyStoragePowerStationGridService', function($http) { + return { + getAllEnergyStoragePowerStationGrids: function(headers, callback) { + $http.get(getAPI()+'energystoragepowerstationgrids', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + getEnergyStoragePowerStationGridsByEnergyStoragePowerStationID: function(id, headers, callback) { + $http.get(getAPI()+'energystoragepowerstations/'+id+'/grids', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + addEnergyStoragePowerStationGrid: function(id, energystoragepowerstationgrid, headers, callback) { + $http.post(getAPI()+'energystoragepowerstations/'+id+'/grids',{data:energystoragepowerstationgrid}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + editEnergyStoragePowerStationGrid: function(id, energystoragepowerstationgrid, headers, callback) { + $http.put(getAPI()+'energystoragepowerstations/'+id+'/grids/'+energystoragepowerstationgrid.id,{data:energystoragepowerstationgrid}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + deleteEnergyStoragePowerStationGrid: function(id, energystoragepowerstationgridyID, headers, callback) { + $http.delete(getAPI()+'energystoragepowerstations/'+id+'/grids/'+energystoragepowerstationgridyID, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + }; +}); diff --git a/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationload.service.js b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationload.service.js new file mode 100644 index 0000000000..4b3bac897c --- /dev/null +++ b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationload.service.js @@ -0,0 +1,45 @@ +'use strict'; +app.factory('EnergyStoragePowerStationLoadService', function($http) { + return { + getAllEnergyStoragePowerStationLoads: function(headers, callback) { + $http.get(getAPI()+'energystoragepowerstationloads', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + getEnergyStoragePowerStationLoadsByEnergyStoragePowerStationID: function(id, headers, callback) { + $http.get(getAPI()+'energystoragepowerstations/'+id+'/loads', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + addEnergyStoragePowerStationLoad: function(id, energystoragepowerstationload, headers, callback) { + $http.post(getAPI()+'energystoragepowerstations/'+id+'/loads',{data:energystoragepowerstationload}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + editEnergyStoragePowerStationLoad: function(id, energystoragepowerstationload, headers, callback) { + $http.put(getAPI()+'energystoragepowerstations/'+id+'/loads/'+energystoragepowerstationload.id,{data:energystoragepowerstationload}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + deleteEnergyStoragePowerStationLoad: function(id, energystoragepowerstationloadyID, headers, callback) { + $http.delete(getAPI()+'energystoragepowerstations/'+id+'/loads/'+energystoragepowerstationloadyID, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + }; +}); diff --git a/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.service.js b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.service.js new file mode 100644 index 0000000000..aa44aed4e9 --- /dev/null +++ b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.service.js @@ -0,0 +1,45 @@ +'use strict'; +app.factory('EnergyStoragePowerStationPowerconversionsystemService', function($http) { + return { + getAllEnergyStoragePowerStationPowerconversionsystems: function(headers, callback) { + $http.get(getAPI()+'energystoragepowerstationpowerconversionsystems', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + getEnergyStoragePowerStationPowerconversionsystemsByEnergyStoragePowerStationID: function(id, headers, callback) { + $http.get(getAPI()+'energystoragepowerstations/'+id+'/powerconversionsystems', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + addEnergyStoragePowerStationPowerconversionsystem: function(id, energystoragepowerstationpowerconversionsystem, headers, callback) { + $http.post(getAPI()+'energystoragepowerstations/'+id+'/powerconversionsystems',{data:energystoragepowerstationpowerconversionsystem}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + editEnergyStoragePowerStationPowerconversionsystem: function(id, energystoragepowerstationpowerconversionsystem, headers, callback) { + $http.put(getAPI()+'energystoragepowerstations/'+id+'/powerconversionsystems/'+energystoragepowerstationpowerconversionsystem.id,{data:energystoragepowerstationpowerconversionsystem}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + deleteEnergyStoragePowerStationPowerconversionsystem: function(id, energystoragepowerstationpowerconversionsystemyID, headers, callback) { + $http.delete(getAPI()+'energystoragepowerstations/'+id+'/powerconversionsystems/'+energystoragepowerstationpowerconversionsystemyID, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + }; +}); diff --git a/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationsensor.service.js b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationsensor.service.js new file mode 100644 index 0000000000..fd715b6467 --- /dev/null +++ b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationsensor.service.js @@ -0,0 +1,30 @@ +'use strict'; +app.factory('EnergyStoragePowerStationSensorService', function($http) { + return { + addPair: function(energystoragepowerstationID,sensorID, headers, callback) { + $http.post(getAPI()+'energystoragepowerstations/'+energystoragepowerstationID+'/sensors',{data:{'sensor_id':sensorID}}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + + deletePair: function(energystoragepowerstationID,sensorID, headers, callback) { + $http.delete(getAPI()+'energystoragepowerstations/'+energystoragepowerstationID+'/sensors/'+sensorID, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + getSensorsByEnergyStoragePowerStationID: function(id, headers, callback) { + $http.get(getAPI()+'energystoragepowerstations/'+id+'/sensors', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + } + }; +}); diff --git a/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationuser.service.js b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationuser.service.js new file mode 100644 index 0000000000..7f976de57d --- /dev/null +++ b/myems-admin/app/services/settings/energystoragepowerstation/energystoragepowerstationuser.service.js @@ -0,0 +1,30 @@ +'use strict'; +app.factory('EnergyStoragePowerStationUserService', function($http) { + return { + addPair: function(energystoragepowerstationID,userID, headers, callback) { + $http.post(getAPI()+'energystoragepowerstations/'+energystoragepowerstationID+'/users',{data:{'user_id':userID}}, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + + deletePair: function(energystoragepowerstationID,userID, headers, callback) { + $http.delete(getAPI()+'energystoragepowerstations/'+energystoragepowerstationID+'/users/'+userID, {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + }, + getUsersByEnergyStoragePowerStationID: function(id, headers, callback) { + $http.get(getAPI()+'energystoragepowerstations/'+id+'/users', {headers}) + .then(function (response) { + callback(response); + }, function (response) { + callback(response); + }); + } + }; +}); diff --git a/myems-admin/app/translations.js b/myems-admin/app/translations.js index c3d4adc6f5..84820b49ef 100644 --- a/myems-admin/app/translations.js +++ b/myems-admin/app/translations.js @@ -583,7 +583,7 @@ function config($translateProvider) { N_S_MICROGRID_POWER_CONVERSION_SYSTEM: ' Power Conversion System (PCS)', ADD_MICROGRID_POWER_CONVERSION_SYSTEM: 'Add Power Conversion System (PCS)', EDIT_MICROGRID_POWER_CONVERSION_SYSTEM: 'Edit Power Conversion System (PCS)', - BIND_USER: 'Bind User' + BIND_USER: 'Bind User', }, VIRTUAL_POWER_PLANT: { BALANCING_PRICE_POINT: 'Balancing Price Point', @@ -597,17 +597,86 @@ function config($translateProvider) { ADDRESS: 'Address', POSTAL_CODE: 'Postal Code', CAPACITY: 'Capacity', + NOMINAL_VOLTAGE: 'Nominal Voltage', LATITUDE: 'Latitude', LONGITUDE: 'Longitude', + SERIAL_NUMBER: 'Serial Number', SVG: 'SVG', DESCRIPTION: 'Description', INPUT_ADDRESS: 'Input Address', INPUT_POSTAL_CODE: 'Input Postal Code', INPUT_CAPACITY: 'Input Capacity', + INPUT_NOMINAL_VOLTAGE: 'Input Nominal Voltage', INPUT_LATITUDE: 'Input Latitude', INPUT_LONGITUDE: 'Input Longitude', + INPUT_SERIAL_NUMBER: 'Input Serial Number', INPUT_SVG: 'Input SVG', INPUT_DESCRIPTION: 'Input Description', + BATTERY_STATE_POINT: 'Battery State Point', + SOC_POINT: 'SOC Point', + POWER_POINT: 'Power Point', + RUN_STATE_POINT: 'Run State Point', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Meter', + CHARGE_METER: 'Charge Meter', + DISCHARGE_METER: 'Discharge Meter', + ELECTRICITY_METER: 'Electricity Meter', + BUY_METER: 'Buy Meter', + SELL_METER: 'Sell Meter', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'Battery', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' Batteries', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Add Battery', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Edit Battery', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Battery Name', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Please Input Battery Name', + ENERGY_STORAGE_POWER_STATION_GRID: 'Grid', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Grid', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Add Grid', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Edit Grid', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Grid Name', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Please Input Grid Name', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Load', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Load', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Add Load', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Edit Load', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Load Name', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Please Input Load Name', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Power Conversion System (PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' Power Conversion System (PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Add Power Conversion System (PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Edit Power Conversion System (PCS)', + BIND_USER: 'Bind User', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Address', @@ -1010,6 +1079,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -1105,6 +1186,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -1993,38 +2082,38 @@ function config($translateProvider) { SOC_POINT: 'SOC数据点', POWER_POINT: '功率数据点', RUN_STATE_POINT: '运行状态数据点', - CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', - CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', - CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', - CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', - CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', - CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', - CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', - CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', - DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', - DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', - DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', - DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', - DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', - DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', - DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', - DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', - CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', - CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', - CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', - CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', - CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', - CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', - CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', - CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', - DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', - DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', - DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', - DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', - DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', - DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', - DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', - DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + CHARGE_START_TIME1_POINT: '充电开始时间1数据点', + CHARGE_END_TIME1_POINT: '充电结束时间1数据点', + CHARGE_START_TIME2_POINT: '充电开始时间2数据点', + CHARGE_END_TIME2_POINT: '充电结束时间2数据点', + CHARGE_START_TIME3_POINT: '充电开始时间3数据点', + CHARGE_END_TIME3_POINT: '充电结束时间3数据点', + CHARGE_START_TIME4_POINT: '充电开始时间4数据点', + CHARGE_END_TIME4_POINT: '充电结束时间4数据点', + DISCHARGE_START_TIME1_POINT: '放电开始时间1数据点', + DISCHARGE_END_TIME1_POINT: '放电结束时间1数据点', + DISCHARGE_START_TIME2_POINT: '放电开始时间2数据点', + DISCHARGE_END_TIME2_POINT: '放电结束时间2数据点', + DISCHARGE_START_TIME3_POINT: '放电开始时间3数据点', + DISCHARGE_END_TIME3_POINT: '放电结束时间3数据点', + DISCHARGE_START_TIME4_POINT: '放电开始时间4数据点', + DISCHARGE_END_TIME4_POINT: '放电结束时间4数据点', + CHARGE_START_TIME1_COMMAND: '充电开始时间1指令', + CHARGE_END_TIME1_COMMAND: '充电结束时间1指令', + CHARGE_START_TIME2_COMMAND: '充电开始时间2指令', + CHARGE_END_TIME2_COMMAND: '充电结束时间2指令', + CHARGE_START_TIME3_COMMAND: '充电开始时间3指令', + CHARGE_END_TIME3_COMMAND: '充电结束时间3指令', + CHARGE_START_TIME4_COMMAND: '充电开始时间4指令', + CHARGE_END_TIME4_COMMAND: '充电结束时间4指令', + DISCHARGE_START_TIME1_COMMAND: '放电开始时间1指令', + DISCHARGE_END_TIME1_COMMAND: '放电结束时间1指令', + DISCHARGE_START_TIME2_COMMAND: '放电开始时间2指令', + DISCHARGE_END_TIME2_COMMAND: '放电结束时间2指令', + DISCHARGE_START_TIME3_COMMAND: '放电开始时间3指令', + DISCHARGE_END_TIME3_COMMAND: '放电结束时间3指令', + DISCHARGE_START_TIME4_COMMAND: '放电开始时间4指令', + DISCHARGE_END_TIME4_COMMAND: '放电结束时间4指令', METER: '计量表', CHARGE_METER: '充电计量表', DISCHARGE_METER: '放电计量表', @@ -2093,17 +2182,86 @@ function config($translateProvider) { ADDRESS: '地址', POSTAL_CODE: '邮编', CAPACITY: '容量', + NOMINAL_VOLTAGE: '标称电压', LATITUDE: '纬度', LONGITUDE: '经度', + SERIAL_NUMBER: '序列号', SVG: 'SVG', DESCRIPTION: '描述', INPUT_ADDRESS: '输入地址', INPUT_POSTAL_CODE: '输入邮编', INPUT_CAPACITY: '输入容量', + INPUT_NOMINAL_VOLTAGE: '输入标称电压', INPUT_LATITUDE: '输入经度', INPUT_LONGITUDE: '输入维度', + INPUT_SERIAL_NUMBER: '输入序列号', INPUT_SVG: '输入SVG', INPUT_DESCRIPTION: '输入描述', + BATTERY_STATE_POINT: '电池状态数据点', + SOC_POINT: 'SOC数据点', + POWER_POINT: '功率数据点', + RUN_STATE_POINT: '运行状态数据点', + CHARGE_START_TIME1_POINT: '充电开始时间1数据点', + CHARGE_END_TIME1_POINT: '充电结束时间1数据点', + CHARGE_START_TIME2_POINT: '充电开始时间2数据点', + CHARGE_END_TIME2_POINT: '充电结束时间2数据点', + CHARGE_START_TIME3_POINT: '充电开始时间3数据点', + CHARGE_END_TIME3_POINT: '充电结束时间3数据点', + CHARGE_START_TIME4_POINT: '充电开始时间4数据点', + CHARGE_END_TIME4_POINT: '充电结束时间4数据点', + DISCHARGE_START_TIME1_POINT: '放电开始时间1数据点', + DISCHARGE_END_TIME1_POINT: '放电结束时间1数据点', + DISCHARGE_START_TIME2_POINT: '放电开始时间2数据点', + DISCHARGE_END_TIME2_POINT: '放电结束时间2数据点', + DISCHARGE_START_TIME3_POINT: '放电开始时间3数据点', + DISCHARGE_END_TIME3_POINT: '放电结束时间3数据点', + DISCHARGE_START_TIME4_POINT: '放电开始时间4数据点', + DISCHARGE_END_TIME4_POINT: '放电结束时间4数据点', + CHARGE_START_TIME1_COMMAND: '充电开始时间1指令', + CHARGE_END_TIME1_COMMAND: '充电结束时间1指令', + CHARGE_START_TIME2_COMMAND: '充电开始时间2指令', + CHARGE_END_TIME2_COMMAND: '充电结束时间2指令', + CHARGE_START_TIME3_COMMAND: '充电开始时间3指令', + CHARGE_END_TIME3_COMMAND: '充电结束时间3指令', + CHARGE_START_TIME4_COMMAND: '充电开始时间4指令', + CHARGE_END_TIME4_COMMAND: '充电结束时间4指令', + DISCHARGE_START_TIME1_COMMAND: '放电开始时间1指令', + DISCHARGE_END_TIME1_COMMAND: '放电结束时间1指令', + DISCHARGE_START_TIME2_COMMAND: '放电开始时间2指令', + DISCHARGE_END_TIME2_COMMAND: '放电结束时间2指令', + DISCHARGE_START_TIME3_COMMAND: '放电开始时间3指令', + DISCHARGE_END_TIME3_COMMAND: '放电结束时间3指令', + DISCHARGE_START_TIME4_COMMAND: '放电开始时间4指令', + DISCHARGE_END_TIME4_COMMAND: '放电结束时间4指令', + METER: '计量表', + CHARGE_METER: '充电计量表', + DISCHARGE_METER: '放电计量表', + ELECTRICITY_METER: '电量表', + BUY_METER: '购买计量表', + SELL_METER: '销售计量表', + ENERGY_STORAGE_POWER_STATION_BATTERY: '电池', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' 电池', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: '添加电池', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: '编辑电池', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: '电池名称', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: '请输入电池名称', + ENERGY_STORAGE_POWER_STATION_GRID: '电网', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' 电网', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: '添加电网', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: '编辑电网', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: '电网名称', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: '请输入电网名称', + ENERGY_STORAGE_POWER_STATION_LOAD: '负载', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' 负载', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: '添加负载', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: '编辑负载', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: '负载名称', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: '请输入负载名称', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: '功率转换系统(PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' 功率转换系统(PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: '添加功率转换系统(PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: '编辑功率转换系统(PCS)', + BIND_USER: '绑定用户', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: '地址', @@ -2529,6 +2687,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -2624,6 +2794,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -3612,17 +3790,86 @@ function config($translateProvider) { ADDRESS: 'Adresse', POSTAL_CODE: 'Postleitzahl', CAPACITY: 'Kapazität', + NOMINAL_VOLTAGE: 'Nennspannung', LATITUDE: 'Breitengrad', LONGITUDE: 'Längengrad', + SERIAL_NUMBER: 'Seriennummer', SVG: 'SVG', DESCRIPTION: 'Beschreibung', - INPUT_ADDRESS: 'Adresse eingeben', - INPUT_POSTAL_CODE: 'geben Sie Postleitzahl ein', - INPUT_CAPACITY: 'Eingabekapazität', - INPUT_LATITUDE: 'Breitengrad eingeben', - INPUT_LONGITUDE: 'Längengrad eingeben', - INPUT_SVG: 'SVG eingeben', - INPUT_DESCRIPTION: 'geben Sie Beschreibung ein', + INPUT_ADDRESS: 'Bitte Adresse eingeben', + INPUT_POSTAL_CODE: 'Bitte geben Sie Postleitzahl ein', + INPUT_CAPACITY: 'Bitte Eingabekapazität', + INPUT_NOMINAL_VOLTAGE: 'Eingangsspannung', + INPUT_LATITUDE: 'Bitte Breitengrad eingeben', + INPUT_LONGITUDE: 'Bitte Längengrad eingeben', + INPUT_SERIAL_NUMBER: 'Seriennummer eingeben', + INPUT_SVG: 'Bitte SVG eingeben', + INPUT_DESCRIPTION: 'Bitte geben Sie Beschreibung ein', + BATTERY_STATE_POINT: 'Batteriezustandspunkt', + SOC_POINT: 'SOC Point', + POWER_POINT: 'Power Point', + RUN_STATE_POINT: 'Zustandspunkt ausführen', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Meter', + CHARGE_METER: 'Charge Meter', + DISCHARGE_METER: 'Discharge Meter', + ELECTRICITY_METER: 'Electricity Meter', + BUY_METER: 'Buy Meter', + SELL_METER: 'Sell Meter', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'Battery', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' Batterien', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Batterie hinzufügen', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Batterie bearbeiten', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Batteriename', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Bitte geben Sie Batteriename ein', + ENERGY_STORAGE_POWER_STATION_GRID: 'Gitter', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Gitter', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Gitter hinzufügen', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Gitter bearbeiten', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Gittername', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Bitte geben Sie Rastername ein', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Last', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Last', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Laden hinzufügen', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Laden bearbeiten', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Name laden', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Bitte geben Sie Ladenamen ein', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Stromumwandlungssystem (PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' Stromumwandlungssystem (PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Stromumwandlungssystem (PCS) hinzufügen', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Stromwandlungssystem (PCS) bearbeiten', + BIND_USER: 'BIND-BENUTZER', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Adresse', @@ -4045,6 +4292,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -4140,6 +4399,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -5147,17 +5414,86 @@ function config($translateProvider) { ADDRESS: 'Adresse', POSTAL_CODE: 'Code postal', CAPACITY: 'Capacité', + NOMINAL_VOLTAGE: 'Tension nominale', LATITUDE: 'Latitude', LONGITUDE: 'Longitude', + SERIAL_NUMBER: 'Numéro de série', SVG: 'SVG', DESCRIPTION: 'Description', - INPUT_ADDRESS: 'saisir l’adresse', - INPUT_POSTAL_CODE: 'entrer le code postal', - INPUT_CAPACITY: 'saisir la capacité', - INPUT_LATITUDE: 'saisir la latitude', - INPUT_LONGITUDE: 'saisir la longitude', - INPUT_SVG: 'saisir SVG', - INPUT_DESCRIPTION: 'saisir la description', + INPUT_ADDRESS: 'Veuillez saisir l’adresse', + INPUT_POSTAL_CODE: 'Veuillez entrer le code postal', + INPUT_CAPACITY: 'Veuillez saisir la capacité', + INPUT_NOMINAL_VOLTAGE: 'Tension nominale d’entrée', + INPUT_LATITUDE: 'Veuillez saisir la latitude', + INPUT_LONGITUDE: 'Veuillez saisir la longitude', + INPUT_SERIAL_NUMBER: 'Entrez le numéro de série', + INPUT_SVG: 'Veuillez saisir SVG', + INPUT_DESCRIPTION: 'Veuillez saisir la description', + BATTERY_STATE_POINT: 'Point d’état de la batterie', + SOC_POINT: 'SOC Point', + POWER_POINT: 'Prise murale', + RUN_STATE_POINT: 'Point d’état opérationnel', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Mètre', + CHARGE_METER: 'Compteur de charge', + DISCHARGE_METER: 'Compteur de décharge', + ELECTRICITY_METER: 'Électricité Mètre', + BUY_METER: 'Acheter Meter', + SELL_METER: 'Vendre le compteur', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'Pile', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' Piles', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Ajouter une batterie', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Modifier la batterie', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Nom de la batterie', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Veuillez saisir le nom de la batterie', + ENERGY_STORAGE_POWER_STATION_GRID: 'Grille', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Grille', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Ajouter une grille', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Modifier la grille', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Nom de la grille', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Veuillez saisir le nom de la grille', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Charger', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Charger', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Ajouter de la charge', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Modifier le chargement', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Nom de chargement', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Veuillez saisir le nom du chargement', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Système de conversion de puissance (PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' Système de conversion de puissance (PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Ajouter un système de conversion de puissance (PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Modifier le système de conversion de puissance (PCS)', + BIND_USER: 'Utilisateurs liés', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Adresse', @@ -5560,6 +5896,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -5655,6 +6003,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -6663,17 +7019,86 @@ function config($translateProvider) { ADDRESS: 'Dirección', POSTAL_CODE: 'Código postal', CAPACITY: 'Capacidad', + NOMINAL_VOLTAGE: 'Tensión nominal', LATITUDE: 'Latitud', LONGITUDE: 'Longitud', + SERIAL_NUMBER: 'Número de serie', SVG: 'SVG', DESCRIPTION: 'Descripción', - INPUT_ADDRESS: 'Introduzca la dirección', - INPUT_POSTAL_CODE: 'Introduzca el código postal', - INPUT_CAPACITY: 'Ingrese la capacidad', - INPUT_LATITUDE: 'Introduzca Latitude', - INPUT_LONGITUDE: 'Introduzca la longitud', - INPUT_SVG: 'Introduzca SVG', - INPUT_DESCRIPTION: 'Introduzca la descripción', + INPUT_ADDRESS: 'Por favor, introduzca la dirección', + INPUT_POSTAL_CODE: 'Por favor, introduzca el código postal', + INPUT_CAPACITY: 'Por favor, ingrese la capacidad', + INPUT_NOMINAL_VOLTAGE: 'Tensión nominal de entrada', + INPUT_LATITUDE: 'Por favor, introduzca Latitude', + INPUT_LONGITUDE: 'Por favor, introduzca la longitud', + INPUT_SERIAL_NUMBER: 'Introduzca el número de serie', + INPUT_SVG: 'Por favor, introduzca SVG', + INPUT_DESCRIPTION: 'Por favor, introduzca la descripción', + BATTERY_STATE_POINT: 'Punto de Estado de la batería', + SOC_POINT: 'Punto SOC', + POWER_POINT: 'Puntos de datos de potencia', + RUN_STATE_POINT: 'Punto de Estado de funcionamiento', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Metro', + CHARGE_METER: 'Medidor de carga', + DISCHARGE_METER: 'Medidor de descarga', + ELECTRICITY_METER: 'Medidor de electricidad', + BUY_METER: 'Comprar medidor', + SELL_METER: 'Vender medidor', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'Batería', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' Baterías', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Añadir batería', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Editar batería', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Nombre de la batería', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Introduzca el nombre de la batería', + ENERGY_STORAGE_POWER_STATION_GRID: 'Rejilla', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Rejilla', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Agregar cuadrícula', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Editar cuadrícula', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Nombre de la cuadrícula', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Introduzca el nombre de la cuadrícula', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Carga', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Carga', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Agregar carga', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Editar carga', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Nombre de carga', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Introduzca el nombre de la carga', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Sistema de conversión de potencia (PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' Sistema de conversión de potencia (PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Añadir sistema de conversión de energía (PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Editar el sistema de conversión de energía', + BIND_USER: 'Usuarios vinculados', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Dirección', @@ -7076,6 +7501,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -7171,6 +7608,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -8179,17 +8624,86 @@ function config($translateProvider) { ADDRESS: 'Адрес', POSTAL_CODE: 'Почтовый индекс', CAPACITY: 'Способность', + NOMINAL_VOLTAGE: 'Номинальное напряжение', LATITUDE: 'Широта', LONGITUDE: 'Долгота', + SERIAL_NUMBER: 'Серийный номер', SVG: 'SVG', DESCRIPTION: 'Описание', - INPUT_ADDRESS: 'введите адрес', - INPUT_POSTAL_CODE: 'введите почтовый индекс', - INPUT_CAPACITY: 'введите емкость', - INPUT_LATITUDE: 'введите широту', - INPUT_LONGITUDE: 'введите долготу', - INPUT_SVG: 'введите SVG', - INPUT_DESCRIPTION: 'введите описание', + INPUT_ADDRESS: 'Пожалуйста, введите адрес', + INPUT_POSTAL_CODE: 'Пожалуйста, введите почтовый индекс', + INPUT_CAPACITY: 'Пожалуйста, введите емкость', + INPUT_NOMINAL_VOLTAGE: 'Входное номинальное напряжение', + INPUT_LATITUDE: 'Пожалуйста, введите широту', + INPUT_LONGITUDE: 'Пожалуйста, введите долготу', + INPUT_SERIAL_NUMBER: 'Введите серийный номер', + INPUT_SVG: 'Пожалуйста, введите SVG', + INPUT_DESCRIPTION: 'Пожалуйста, введите описание', + BATTERY_STATE_POINT: 'Точка состояния батареи', + SOC_POINT: 'Точка SOC', + POWER_POINT: 'Электрический ввод', + RUN_STATE_POINT: 'Точка режима работы', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Метр', + CHARGE_METER: 'Счетчик заряда', + DISCHARGE_METER: 'Расходомер', + ELECTRICITY_METER: 'Счетчик электроэнергии', + BUY_METER: 'Купить счетчик', + SELL_METER: 'Продать счетчик', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'Батарея', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' Батареи', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Добавить батарею', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Редактировать батарею', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Название батареи', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Пожалуйста, введите имя батареи', + ENERGY_STORAGE_POWER_STATION_GRID: 'Сетка', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Сетка', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Добавить сетку', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Редактировать сетку', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Имя сетки', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Пожалуйста, введите имя сетки', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Груз', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Груз', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Добавить нагрузку', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Изменить нагрузку', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Имя загрузки', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Пожалуйста, введите имя загрузки', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'частотно - следящая переключения мощности (PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' частотно - следящая переключения мощности (PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Добавить систему переключения питания (PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Изменить систему переключения питания (PCS)', + BIND_USER: 'Связанные пользователи', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Адрес', @@ -8592,6 +9106,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -8687,6 +9213,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -9695,17 +10229,86 @@ function config($translateProvider) { ADDRESS: 'عنوان', POSTAL_CODE: 'الرمز البريدي', CAPACITY: 'سعة', + NOMINAL_VOLTAGE: 'الجهد الاسمي', LATITUDE: 'العرض', LONGITUDE: 'خط الطول', + SERIAL_NUMBER: 'الرقم المتسلسل', SVG: 'SVG', DESCRIPTION: 'وصف', INPUT_ADDRESS: 'يرجى إدخال العنوان', INPUT_POSTAL_CODE: 'يرجى إدخال الرمز البريدي', INPUT_CAPACITY: 'يرجى إدخال السعة', + INPUT_NOMINAL_VOLTAGE: 'المدخلات الجهد الاسمي', INPUT_LATITUDE: 'يرجى إدخال خط العرض', INPUT_LONGITUDE: 'يرجى إدخال خط الطول', + INPUT_SERIAL_NUMBER: 'أدخل الرقم المسلسل', INPUT_SVG: 'الرجاء إدخال SVG', INPUT_DESCRIPTION: 'يرجى إدخال الوصف', + BATTERY_STATE_POINT: 'مركز البطارية', + SOC_POINT: 'نقطة سوك', + POWER_POINT: 'باور بوينت', + RUN_STATE_POINT: 'تشغيل نقطة الدولة', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'متر', + CHARGE_METER: 'عداد الشحن', + DISCHARGE_METER: 'مقياس التفريغ', + ELECTRICITY_METER: 'عداد الكهرباء', + BUY_METER: 'شراء متر', + SELL_METER: 'بيع العداد', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'بطارية', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' البطاريات', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'إضافة بطارية', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'تحرير البطارية', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'اسم البطارية', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'الرجاء إدخال اسم البطارية', + ENERGY_STORAGE_POWER_STATION_GRID: 'شبكة', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' شبكة', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'إضافة شبكة', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'تحرير الشبكة', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'اسم الشبكة', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'يرجى إدخال اسم الشبكة', + ENERGY_STORAGE_POWER_STATION_LOAD: 'حمل', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' حمل', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'إضافة حمولة', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'تحرير تحميل', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'اسم التحميل', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'يرجى إدخال اسم الحمل', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'نظام تحويل الطاقة', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'نظام تحويل الطاقة(PCS) ', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'إضافة نظام تحويل الطاقة(PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' (PCS) تحرير نظام تحويل الطاقة', + BIND_USER: 'ربط المستخدم', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'عنوان', @@ -10108,6 +10711,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -10203,6 +10818,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -11211,17 +11834,86 @@ function config($translateProvider) { ADDRESS: 'Địa chỉ', POSTAL_CODE: 'Mã bưu chính', CAPACITY: 'Khả năng', + NOMINAL_VOLTAGE: 'Điện áp danh định', LATITUDE: 'Vĩ độ', LONGITUDE: 'Kinh độ', + SERIAL_NUMBER: 'Số sê-ri', SVG: 'SVG', DESCRIPTION: 'Sự miêu tả', INPUT_ADDRESS: 'Vui lòng nhập địa chỉ', INPUT_POSTAL_CODE: 'Vui lòng nhập mã bưu chính', INPUT_CAPACITY: 'Vui lòng nhập dung lượng', + INPUT_NOMINAL_VOLTAGE: 'Nhập điện áp danh định', INPUT_LATITUDE: 'Vui lòng nhập Latitude', INPUT_LONGITUDE: 'Vui lòng nhập kinh độ', + INPUT_SERIAL_NUMBER: 'Nhập số sê-ri', INPUT_SVG: 'Vui lòng nhập SVG', INPUT_DESCRIPTION: 'Vui lòng nhập mô tả', + BATTERY_STATE_POINT: 'Điểm trạng thái pin', + SOC_POINT: 'Điểm SOC', + POWER_POINT: 'Nhà máy điện', + RUN_STATE_POINT: 'Chạy điểm trạng thái', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Mét', + CHARGE_METER: 'Đồng hồ đo phí', + DISCHARGE_METER: 'Đồng hồ đo xả', + ELECTRICITY_METER: 'Đồng hồ điện', + BUY_METER: 'Mua đồng hồ đo', + SELL_METER: 'Bán đồng hồ đo', + MICROGRID_BATTERY: 'Pin', + N_S_MICROGRID_BATTERY: ' Pin', + ADD_MICROGRID_BATTERY: 'Thêm pin', + EDIT_MICROGRID_BATTERY: 'Chỉnh sửa pin', + MICROGRID_BATTERY_NAME: 'Tên pin', + INPUT_MICROGRID_BATTERY_NAME: 'Vui lòng nhập tên pin', + ENERGY_STORAGE_POWER_STATION_GRID: 'Lưới', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Lưới', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Thêm lưới', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Chỉnh sửa lưới', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Tên lưới', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Vui lòng nhập tên lưới', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Tải', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Tải', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Thêm tải', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Chỉnh sửa tải', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Tên tải', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Vui lòng nhập tên tải', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Hệ thống chuyển đổi năng lượng(PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' Hệ thống chuyển đổi năng lượng(PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Thêm hệ thống chuyển đổi năng lượng(PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Chỉnh sửa hệ thống chuyển đổi điện(PCS)', + BIND_USER: 'NGƯỜI DÙNG RÀNG BUỘC', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Địa chỉ', @@ -11624,6 +12316,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -11719,6 +12423,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -12727,17 +13439,86 @@ function config($translateProvider) { ADDRESS: 'ที่อยู่', POSTAL_CODE: 'รหัสไปรษณีย์', CAPACITY: 'ความสามารถ', + NOMINAL_VOLTAGE: 'แรงดันไฟฟ้าที่กำหนด', LATITUDE: 'เส้นรุ้ง', LONGITUDE: 'เส้นแวง', + SERIAL_NUMBER: 'หมายเลขผลิตภัณฑ์', SVG: 'SVG', DESCRIPTION: 'การบรรยาย', INPUT_ADDRESS: 'กรุณาใส่ที่อยู่', INPUT_POSTAL_CODE: 'กรุณากรอกรหัสไปรษณีย์', INPUT_CAPACITY: 'กรุณาใส่ความจุ', + INPUT_NOMINAL_VOLTAGE: 'ป้อนแรงดันไฟฟ้าที่กำหนด', INPUT_LATITUDE: 'กรุณาใส่ละติจูด', INPUT_LONGITUDE: 'กรุณาใส่ลองจิจูด', + INPUT_SERIAL_NUMBER: 'ป้อนหมายเลขซีเรียล', INPUT_SVG: 'กรุณาใส่ SVG', INPUT_DESCRIPTION: 'กรุณาใส่คําอธิบาย', + BATTERY_STATE_POINT: 'คะแนนสถานะแบตเตอรี่', + SOC_POINT: 'จุด SOC', + POWER_POINT: 'พาวเวอร์พ้อยท์', + RUN_STATE_POINT: 'จุดสถานะการทำงาน', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'เมตร', + CHARGE_METER: 'เครื่องวัดการชาร์จ', + DISCHARGE_METER: 'เครื่องวัดการคายประจุ', + ELECTRICITY_METER: 'มิเตอร์ไฟฟ้า', + BUY_METER: 'ซื้อมิเตอร์', + SELL_METER: 'ขายมิเตอร์', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'แบตเตอรี่', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' แบตเตอรี่', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'เพิ่มแบตเตอรี่', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'แก้ไขแบตเตอรี่', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'ชื่อแบตเตอรี่', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'กรุณาใส่ชื่อแบตเตอรี่', + ENERGY_STORAGE_POWER_STATION_GRID: 'ตาราง', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' ตาราง', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'เพิ่มกริด', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'แก้ไขกริด', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'ชื่อตาราง', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'กรุณาใส่ชื่อตาราง', + ENERGY_STORAGE_POWER_STATION_LOAD: 'ภาระ', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' ภาระ', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'เพิ่มโหลด', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'แก้ไขโหลด', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'ชื่อโหลด', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'กรุณาใส่ชื่อโหลด', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'ระบบแปลงกำลัง', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' ระบบแปลงกำลัง(PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'เพิ่มระบบแปลงกำลัง(PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'แก้ไขระบบแปลงกำลัง(PCS)', + BIND_USER: 'ผูกผู้ใช้', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'ที่อยู่', @@ -13140,6 +13921,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -13235,6 +14028,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -14243,17 +15044,86 @@ function config($translateProvider) { ADDRESS: 'Adres', POSTAL_CODE: 'Posta Kodu', CAPACITY: 'Kapasite', + NOMINAL_VOLTAGE: 'Voltage Nominal', LATITUDE: 'Enlem', LONGITUDE: 'Boylam', + SERIAL_NUMBER: 'Seri Numarası', SVG: 'SVG', DESCRIPTION: 'Tarif', INPUT_ADDRESS: 'Lütfen Adres Giriniz', INPUT_POSTAL_CODE: 'Lütfen Posta Kodunu Giriniz', INPUT_CAPACITY: 'Lütfen Giriş Kapasitesi', + INPUT_NOMINAL_VOLTAGE: 'Girdi Nominal Voltage', INPUT_LATITUDE: 'Lütfen Enlemi Girin', INPUT_LONGITUDE: 'Lütfen Boylamı Girin', + INPUT_SERIAL_NUMBER: 'Girdi Seri Numarası', INPUT_SVG: 'Lütfen SVG girin', INPUT_DESCRIPTION: 'Lütfen Açıklama Giriniz', + BATTERY_STATE_POINT: 'Batarya durumu noktası', + SOC_POINT: 'SOC Noktası', + POWER_POINT: 'Güç Noktası', + RUN_STATE_POINT: 'Durum noktasını çalıştır', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Metre', + CHARGE_METER: 'Şarj Ölçer', + DISCHARGE_METER: 'Deşarj Ölçer', + ELECTRICITY_METER: 'Elektrik Sayacı', + BUY_METER: 'Meter Satın Alın', + SELL_METER: 'Satış Sayacı', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'Pil', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' Pil', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Pil Ekle', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Pili Düzenle', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Pil Adı', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Lütfen Pil Adını Girin', + ENERGY_STORAGE_POWER_STATION_GRID: 'Kılavuz', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Kılavuz', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Izgara Ekle', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Izgarayı Düzenle', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Izgara Adı', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Lütfen Izgara Adını Girin', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Yük', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Yük', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Yük Ekle', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Yükü Düzenle', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Yükleme Adı', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Lütfen Yükleme Adını Girin', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Güç Dönüşüm Sistemi (PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' Güç Dönüşüm Sistemi (PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Güç Dönüşüm Sistemi Ekle (PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Güç Dönüşüm Sistemini Düzenle (PCS)', + BIND_USER: 'KULLANICIYI BAĞLA', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Adres', @@ -14656,6 +15526,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -14751,6 +15633,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -15744,7 +16634,7 @@ function config($translateProvider) { N_S_MICROGRID_POWER_CONVERSION_SYSTEM: ' Sistem Penukaran Kuasa (PCS)', ADD_MICROGRID_POWER_CONVERSION_SYSTEM: 'Tambah Sistem Penukaran Kuasa (PCS)', EDIT_MICROGRID_POWER_CONVERSION_SYSTEM: 'Edit Sistem Penukaran Kuasa (PCS)', - BIND_USER: 'Pengguna Mengikat' + BIND_USER: 'Pengguna Mengikat', }, VIRTUAL_POWER_PLANT: { BALANCING_PRICE_POINT: 'Mengimbangi Titik Harga', @@ -15758,17 +16648,86 @@ function config($translateProvider) { ADDRESS: 'Alamat', POSTAL_CODE: 'Poskod', CAPACITY: 'Kapasiti', + NOMINAL_VOLTAGE: 'Nominal Voltage', LATITUDE: 'Latitud', LONGITUDE: 'Longitud', + SERIAL_NUMBER: 'Nombor Siri', SVG: 'SVG', DESCRIPTION: 'Keterangan', INPUT_ADDRESS: 'Sila Alamat Input', INPUT_POSTAL_CODE: 'Sila Masukkan Poskod', INPUT_CAPACITY: 'Sila Kapasiti Input', + INPUT_NOMINAL_VOLTAGE: 'Voltage Nominal Input', INPUT_LATITUDE: 'Sila masukkan latitud', INPUT_LONGITUDE: 'Sila masukkan longitud', + INPUT_SERIAL_NUMBER: 'Nombor Siri Input', INPUT_SVG: 'Sila masukkan SVG', INPUT_DESCRIPTION: 'Sila Input Penerangan', + BATTERY_STATE_POINT: 'Titik keadaan bateri', + SOC_POINT: 'Titik SOC', + POWER_POINT: 'Kilang Kuasa', + RUN_STATE_POINT: 'Jalankan Titik Keadaan', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Meter', + CHARGE_METER: 'Meter Caj', + DISCHARGE_METER: 'Pelepasan Meter', + ELECTRICITY_METER: 'Meter Elektrik', + BUY_METER: 'Beli Meter', + SELL_METER: 'Jual Meter', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'Bateri', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' Bateri', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Tambah Bateri', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Edit Bateri', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Nama Bateri', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Sila masukkan nama bateri', + ENERGY_STORAGE_POWER_STATION_GRID: 'Grid', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Grid', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Tambah Grid', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Edit Grid', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Nama Grid', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Sila masukkan Nama Grid', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Memuatkan', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Memuatkan', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Tambah Beban', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Edit Beban', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Nama Beban', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Sila masukkan Nama Beban', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Sistem Penukaran Kuasa (PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' Sistem Penukaran Kuasa (PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Tambah Sistem Penukaran Kuasa (PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Edit Sistem Penukaran Kuasa (PCS)', + BIND_USER: 'Pengguna Mengikat', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Alamat', @@ -16171,6 +17130,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -16266,6 +17237,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', @@ -17260,7 +18239,7 @@ function config($translateProvider) { N_S_MICROGRID_POWER_CONVERSION_SYSTEM: ' Sistem Konversi Daya (PCS)', ADD_MICROGRID_POWER_CONVERSION_SYSTEM: 'Tambahkan Sistem Konversi Daya (PCS)', EDIT_MICROGRID_POWER_CONVERSION_SYSTEM: 'Edit Sistem Konversi Daya (PCS)', - BIND_USER: 'Mengikat Pengguna' + BIND_USER: 'Mengikat Pengguna', }, VIRTUAL_POWER_PLANT: { BALANCING_PRICE_POINT: 'Menyeimbangkan Titik Harga', @@ -17274,17 +18253,86 @@ function config($translateProvider) { ADDRESS: 'Alamat', POSTAL_CODE: 'Kode Pos', CAPACITY: 'Kapasitas', + NOMINAL_VOLTAGE: 'Tengah Nominal', LATITUDE: 'Lintang', LONGITUDE: 'Bujur', + SERIAL_NUMBER: 'Nomor Seri', SVG: 'SVG', DESCRIPTION: 'Deskripsi', INPUT_ADDRESS: 'Silakan masukkan alamat', INPUT_POSTAL_CODE: 'Silakan masukkan Kode Pos', INPUT_CAPACITY: 'Silakan Input Kapasitas', + INPUT_NOMINAL_VOLTAGE: 'Pantas Nominal Input', INPUT_LATITUDE: 'Silakan masukkan Latitude', INPUT_LONGITUDE: 'Silakan masukkan Garis Bujur', + INPUT_SERIAL_NUMBER: 'Nomor Seri Input', INPUT_SVG: 'Silakan masukan SVG', INPUT_DESCRIPTION: 'Silakan masukkan deskripsi', + BATTERY_STATE_POINT: 'Titik keadaan baterai', + SOC_POINT: 'Titik SOC', + POWER_POINT: 'Pembangkit listrik', + RUN_STATE_POINT: 'Jalankan titik negara', + CHARGE_START_TIME1_POINT: 'Charge Start Time1 Point', + CHARGE_END_TIME1_POINT: 'Charge End Time1 Point', + CHARGE_START_TIME2_POINT: 'Charge Start Time2 Point', + CHARGE_END_TIME2_POINT: 'Charge End Time2 Point', + CHARGE_START_TIME3_POINT: 'Charge Start Time3 Point', + CHARGE_END_TIME3_POINT: 'Charge End Time3 Point', + CHARGE_START_TIME4_POINT: 'Charge Start Time4 Point', + CHARGE_END_TIME4_POINT: 'Charge End Time4 Point', + DISCHARGE_START_TIME1_POINT: 'Discharge Start Time1 Point', + DISCHARGE_END_TIME1_POINT: 'Discharge End Time1 Point', + DISCHARGE_START_TIME2_POINT: 'Discharge Start Time2 Point', + DISCHARGE_END_TIME2_POINT: 'Discharge End Time2 Point', + DISCHARGE_START_TIME3_POINT: 'Discharge Start Time3 Point', + DISCHARGE_END_TIME3_POINT: 'Discharge End Time3 Point', + DISCHARGE_START_TIME4_POINT: 'Discharge Start Time4 Point', + DISCHARGE_END_TIME4_POINT: 'Discharge End Time4 Point', + CHARGE_START_TIME1_COMMAND: 'Charge Start Time1 Command', + CHARGE_END_TIME1_COMMAND: 'Charge End Time1 Command', + CHARGE_START_TIME2_COMMAND: 'Charge Start Time2 Command', + CHARGE_END_TIME2_COMMAND: 'Charge End Time2 Command', + CHARGE_START_TIME3_COMMAND: 'Charge Start Time3 Command', + CHARGE_END_TIME3_COMMAND: 'Charge End Time3 Command', + CHARGE_START_TIME4_COMMAND: 'Charge Start Time4 Command', + CHARGE_END_TIME4_COMMAND: 'Charge End Time4 Command', + DISCHARGE_START_TIME1_COMMAND: 'Discharge Start Time1 Command', + DISCHARGE_END_TIME1_COMMAND: 'Discharge End Time1 Command', + DISCHARGE_START_TIME2_COMMAND: 'Discharge Start Time2 Command', + DISCHARGE_END_TIME2_COMMAND: 'Discharge End Time2 Command', + DISCHARGE_START_TIME3_COMMAND: 'Discharge Start Time3 Command', + DISCHARGE_END_TIME3_COMMAND: 'Discharge End Time3 Command', + DISCHARGE_START_TIME4_COMMAND: 'Discharge Start Time4 Command', + DISCHARGE_END_TIME4_COMMAND: 'Discharge End Time4 Command', + METER: 'Meter', + CHARGE_METER: 'Pengukur Pengisian Daya', + DISCHARGE_METER: 'Pengukur Debit', + ELECTRICITY_METER: 'Meteran Listrik', + BUY_METER: 'Beli Meter', + SELL_METER: 'Jual Meter', + ENERGY_STORAGE_POWER_STATION_BATTERY: 'Baterai', + N_S_ENERGY_STORAGE_POWER_STATION_BATTERY: ' Baterai', + ADD_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Tambahkan Baterai', + EDIT_ENERGY_STORAGE_POWER_STATION_BATTERY: 'Edit Baterai', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Nama Baterai', + INPUT_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Silakan masukkan nama baterai', + ENERGY_STORAGE_POWER_STATION_GRID: 'Grid', + N_S_ENERGY_STORAGE_POWER_STATION_GRID: ' Grid', + ADD_ENERGY_STORAGE_POWER_STATION_GRID: 'Tambahkan Grid', + EDIT_ENERGY_STORAGE_POWER_STATION_GRID: 'Edit Kisi', + ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Nama Kisi', + INPUT_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Silakan masukkan nama kisi', + ENERGY_STORAGE_POWER_STATION_LOAD: 'Muat', + N_S_ENERGY_STORAGE_POWER_STATION_LOAD: ' Muat', + ADD_ENERGY_STORAGE_POWER_STATION_LOAD: 'Tambahkan Beban', + EDIT_ENERGY_STORAGE_POWER_STATION_LOAD: 'Edit Beban', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Nama Muat', + INPUT_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Silakan masukkan nama muatan', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Sistem Konversi Daya (PCS)', + N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: ' Sistem Konversi Daya (PCS)', + ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Tambahkan Sistem Konversi Daya (PCS)', + EDIT_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM: 'Edit Sistem Konversi Daya (PCS)', + BIND_USER: 'Mengikat Pengguna', }, PHOTOVOLTAIC_POWER_STATION: { ADDRESS: 'Alamat', @@ -17687,6 +18735,18 @@ function config($translateProvider) { ENERGY_ITEM_USED_IN_VIRTUAL_METER: 'Energy Item Used In Virtual Meter', ENERGY_STORAGE_POWER_STATION_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Name Is Already In Use', ENERGY_STORAGE_POWER_STATION_NOT_FOUND: 'Energy Storage Power Station Not Found', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS: 'Energy Storage Power Station Sensor Relation Exists', + ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND: 'Energy Storage Power Station Sensor Relation Not Found', + ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Battery Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND: 'Energy Storage Power Station Battery Not Found', + ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Grid Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND: 'Energy Storage Power Station Grid Not Found', + ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station Load Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND: 'Energy Storage Power Station Load Not Found', + ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE: 'Energy Storage Power Station PCS Name Is Already In Use', + ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND: 'Energy Storage Power Station Power Conversion System Not Found', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS: 'Energy Storage Power Station User Relation Exists', + ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND: 'Energy Storage Power Station User Relation Not Found', EQUIPMENT_COMMAND_RELATION_EXISTS: 'Equipment Command Relation Exists', EQUIPMENT_COMMAND_RELATION_NOT_FOUND: 'Equipment Command Relation Not Found', EQUIPMENT_METER_RELATION_EXISTS: 'Equipment Meter Relation Exists', @@ -17782,6 +18842,14 @@ function config($translateProvider) { INVALID_ENERGY_ITEM_NAME: 'Invalid Energy Item Name', INVALID_ENERGY_STORAGE_POWER_STATION_ID: 'Invalid Energy Storage Power Station ID', INVALID_ENERGY_STORAGE_POWER_STATION_NAME: 'Invalid Energy Storage Power Station Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME: 'Invalid Energy Storage Power Station Battery Name', + INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID: 'Invalid Energy Storage Power Station Battery ID', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME: 'Invalid Energy Storage Power Station Grid Name', + INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID: 'Invalid Energy Storage Power Station Grid ID', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME: 'Invalid Energy Storage Power Station Load Name', + INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID: 'Invalid Energy Storage Power Station Load ID', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME: 'Invalid Energy Storage Power Station Power Conversion System Name', + INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID: 'Invalid Energy Storage Power Station Power Conversion System ID', INVALID_EQUATION_IN_EXPRESSION: 'Invalid Equation In Expression', INVALID_EQUIPMENT_ID: 'Invalid Equipment ID', INVALID_EQUIPMENT_NAME: 'Invalid Equipment Name', diff --git a/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstation.html b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstation.html index 284cbd2584..c6f65dc879 100644 --- a/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstation.html +++ b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstation.html @@ -50,6 +50,423 @@ + +
+
+
+
+
+ {{'COMMON.ENERGY_STORAGE_POWER_STATION' | translate}} +
+
+
+
+ + {{$select.selected.name}} + +
+
+
+
+
+
+
+
+
+
+
+ {{currentEnergyStoragePowerStation.name}}{{'ENERGY_STORAGE_POWER_STATION.N_S_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM' | translate}} +
+
+ + {{'ENERGY_STORAGE_POWER_STATION.ADD_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM' | translate}} + + + + + + + + + + + + + + + + + + + + + + + + + +
{{'SETTING.ID' | translate}}{{'ENERGY_STORAGE_POWER_STATION.ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM' | translate}}{{'ENERGY_STORAGE_POWER_STATION.RUN_STATE_POINT' | translate}}{{'ENERGY_STORAGE_POWER_STATION.CAPACITY' | translate}}(kW){{'SETTING.ACTION' | translate}}
{{ energystoragepowerstationpowerconversionsystem.id }}{{ energystoragepowerstationpowerconversionsystem.name }}{{ energystoragepowerstationpowerconversionsystem.run_state_point.name }}{{ energystoragepowerstationpowerconversionsystem.capacity }} + {{'SETTING.EDIT' | translate}} + {{'SETTING.DELETE' | translate}} +
+
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + {{'COMMON.ENERGY_STORAGE_POWER_STATION' | translate}} +
    +
    +
    +
    + + {{$select.selected.name}} + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + {{currentEnergyStoragePowerStation.name}}{{'ENERGY_STORAGE_POWER_STATION.N_S_ENERGY_STORAGE_POWER_STATION_BATTERY' | translate}} +
    +
    + + {{'ENERGY_STORAGE_POWER_STATION.ADD_ENERGY_STORAGE_POWER_STATION_BATTERY' | translate}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{'SETTING.ID' | translate}}{{'ENERGY_STORAGE_POWER_STATION.ENERGY_STORAGE_POWER_STATION_BATTERY_NAME' | translate}}{{'ENERGY_STORAGE_POWER_STATION.BATTERY_STATE_POINT' | translate}}{{'ENERGY_STORAGE_POWER_STATION.SOC_POINT' | translate}}{{'ENERGY_STORAGE_POWER_STATION.POWER_POINT' | translate}}{{'ENERGY_STORAGE_POWER_STATION.CHARGE_METER' | translate}}{{'ENERGY_STORAGE_POWER_STATION.DISCHARGE_METER' | translate}}{{'ENERGY_STORAGE_POWER_STATION.CAPACITY' | translate}} (Ah){{'ENERGY_STORAGE_POWER_STATION.NOMINAL_VOLTAGE' | translate}} (V){{'SETTING.ACTION' | translate}}
    {{ energystoragepowerstationbattery.id }}{{ energystoragepowerstationbattery.name }}{{ energystoragepowerstationbattery.battery_state_point.name }}{{ energystoragepowerstationbattery.soc_point.name }}{{ energystoragepowerstationbattery.power_point.name }}{{ energystoragepowerstationbattery.charge_meter.name }}{{ energystoragepowerstationbattery.discharge_meter.name }}{{ energystoragepowerstationbattery.capacity }}{{ energystoragepowerstationbattery.nominal_voltage }} + {{'SETTING.EDIT' | translate}} + {{'SETTING.DELETE' | translate}} +
    +
      +
      +
      +
      +
      +
      +
      +
      + +
      +
      +
      +
      +
      + {{'COMMON.ENERGY_STORAGE_POWER_STATION' | translate}} +
      +
      +
      +
      + + {{$select.selected.name}} + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + {{currentEnergyStoragePowerStation.name}}{{'ENERGY_STORAGE_POWER_STATION.N_S_ENERGY_STORAGE_POWER_STATION_GRID' | translate}} +
      +
      + + {{'ENERGY_STORAGE_POWER_STATION.ADD_ENERGY_STORAGE_POWER_STATION_GRID' | translate}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {{'SETTING.ID' | translate}}{{'ENERGY_STORAGE_POWER_STATION.ENERGY_STORAGE_POWER_STATION_GRID_NAME' | translate}}{{'ENERGY_STORAGE_POWER_STATION.POWER_POINT' | translate}}{{'ENERGY_STORAGE_POWER_STATION.BUY_METER' | translate}}{{'ENERGY_STORAGE_POWER_STATION.SELL_METER' | translate}}{{'ENERGY_STORAGE_POWER_STATION.CAPACITY' | translate}}(kW){{'SETTING.ACTION' | translate}}
      {{ energystoragepowerstationgrid.id }}{{ energystoragepowerstationgrid.name }}{{ energystoragepowerstationgrid.power_point.name }}{{ energystoragepowerstationgrid.buy_meter.name }}{{ energystoragepowerstationgrid.sell_meter.name }}{{ energystoragepowerstationgrid.capacity }} + {{'SETTING.EDIT' | translate}} + {{'SETTING.DELETE' | translate}} +
      +
        +
        +
        +
        +
        +
        +
        +
        + +
        +
        +
        +
        +
        + {{'COMMON.ENERGY_STORAGE_POWER_STATION' | translate}} +
        +
        +
        +
        + + {{$select.selected.name}} + +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        + {{currentEnergyStoragePowerStation.name}}{{'ENERGY_STORAGE_POWER_STATION.N_S_ENERGY_STORAGE_POWER_STATION_LOAD' | translate}} +
        +
        + + {{'ENERGY_STORAGE_POWER_STATION.ADD_ENERGY_STORAGE_POWER_STATION_LOAD' | translate}} + + + + + + + + + + + + + + + + + + + + + + + + + + +
        {{'SETTING.ID' | translate}}{{'ENERGY_STORAGE_POWER_STATION.ENERGY_STORAGE_POWER_STATION_LOAD_NAME' | translate}}{{'ENERGY_STORAGE_POWER_STATION.POWER_POINT' | translate}}{{'ENERGY_STORAGE_POWER_STATION.METER' | translate}}{{'ENERGY_STORAGE_POWER_STATION.CAPACITY' | translate}}(kW){{'SETTING.ACTION' | translate}}
        {{ energystoragepowerstationload.id }}{{ energystoragepowerstationload.name }}{{ energystoragepowerstationload.power_point.name }}{{ energystoragepowerstationload.meter.name }}{{ energystoragepowerstationload.capacity }} + {{'SETTING.EDIT' | translate}} + {{'SETTING.DELETE' | translate}} +
        +
          +
          +
          +
          +
          +
          +
          +
          + +
          +
          +
          +
          +
          + {{'COMMON.ENERGY_STORAGE_POWER_STATION' | translate}} +
          +
          +
          +
          + + {{$select.selected.name}} + +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + {{currentEnergyStoragePowerStation.name}}{{'SETTING.N_S_SENSOR' | translate}} +
          +
          + +
          {{energystoragepowerstationsensor.name}} +
          +
          +
          +
          +
          + {{'SETTING.TRASH' | translate}} +
          +
          + +
          +
          +
          +
          +
          +
          + {{'SENSOR.SELECT_SENSOR' | translate}} +
          +
          +
          {{'SETTING.SENSOR_LIST' | translate}}
          +
          {{sensor.name}}
          +
          +
          +
          +
          +
          +
          + +
          +
          +
          +
          +
          + {{'COMMON.ENERGY_STORAGE_POWER_STATION' | translate}} +
          +
          +
          +
          + + {{$select.selected.name}} + +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + {{currentEnergyStoragePowerStation.name}}{{'SETTING.N_S_USER' | translate}} +
          +
          + +
          {{energystoragepowerstationuser.name}} +
          +
          +
          +
          +
          + {{'SETTING.TRASH' | translate}} +
          +
          + +
          +
          +
          +
          +
          +
          + {{'USER.SELECT_USER' | translate}} +
          +
          +
          {{'USER.USER_LIST' | translate}}
          +
          {{user.name}}
          +
          +
          +
          +
          +
          +
          diff --git a/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationbattery.model.html b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationbattery.model.html new file mode 100644 index 0000000000..f887d618e5 --- /dev/null +++ b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationbattery.model.html @@ -0,0 +1,85 @@ +
          + + + +
          diff --git a/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationgrid.model.html b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationgrid.model.html new file mode 100644 index 0000000000..30f8b93e31 --- /dev/null +++ b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationgrid.model.html @@ -0,0 +1,59 @@ +
          + + + +
          diff --git a/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationload.model.html b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationload.model.html new file mode 100644 index 0000000000..93c0c2c13d --- /dev/null +++ b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationload.model.html @@ -0,0 +1,48 @@ +
          + + + +
          diff --git a/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.model.html b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.model.html new file mode 100644 index 0000000000..154b48dbc3 --- /dev/null +++ b/myems-admin/views/settings/energystoragepowerstation/energystoragepowerstationpowerconversionsystem.model.html @@ -0,0 +1,358 @@ +
          + + + +
          diff --git a/myems-api/MyEMS.postman_collection.json b/myems-api/MyEMS.postman_collection.json index e682df7977..e2197567ff 100644 --- a/myems-api/MyEMS.postman_collection.json +++ b/myems-api/MyEMS.postman_collection.json @@ -4337,6 +4337,872 @@ } }, "response": [] + }, + { + "name": "GET All Sensors of an Energy Storage Power Station", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "3a7acfe1-f3c3-4561-a985-8a4d23ef54d0", + "type": "default" + }, + { + "key": "Token", + "value": "831f86c46eaa946be6450097c2ecfc2966fecea18853d00ae3147b11123899438fd5394f1bcfc165d0a3d0604baa93eb14f29d0d88c3f75b3bcaa807029e410c", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/microgrids/1/sensors", + "host": [ + "{{base_url}}" + ], + "path": [ + "microgrids", + "1", + "sensors" + ] + } + }, + "response": [] + }, + { + "name": "POST Bind a Sensor to an Energy Storage Power Station", + "request": { + "method": "POST", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text" + }, + { + "key": "Token", + "value": "9a3748fadf64270dd4617594939169d0008a1b713e3a5861af384c68de73442b56b56771ce2be1e51ecd7443ec0fc1fbd6dcc3335a2c7518ca12b7a479ccb2e0", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"sensor_id\":1}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/sensors", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "sensors" + ] + } + }, + "response": [] + }, + { + "name": "DELETE a Sensor from an Energy Storage Power Station", + "request": { + "method": "DELETE", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text" + }, + { + "key": "Token", + "value": "9a3748fadf64270dd4617594939169d0008a1b713e3a5861af384c68de73442b56b56771ce2be1e51ecd7443ec0fc1fbd6dcc3335a2c7518ca12b7a479ccb2e0", + "type": "text" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/sensors/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "sensors", + "1" + ] + } + }, + "response": [] + }, + { + "name": "GET All Batteries of an Energy Storage Power Station", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "default" + }, + { + "key": "Token", + "value": "08d9de3ccf860300dc3955a4ed0026dd6f2d71d28713ced3074452fa9eccf23d702d52b1946e0733ada378e0691ccd2a72f4be0af2c9770c6d8f2d031abadd63", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/3/batteries", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "3", + "batteries" + ] + } + }, + "response": [] + }, + { + "name": "GET an Energy Storage Power Station Battery", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "default" + }, + { + "key": "Token", + "value": "86b53bdff3dc73ceff0e58570cb0790799b37ac3cc2a787b342507acbc1a89520cdda9efb8c51a5d64d81d2cdb265a392876be729f2fbad62b540157976c48eb", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/batteries/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "batteries", + "1" + ] + } + }, + "response": [] + }, + { + "name": "POST Create new Energy Storage Power Station Battery", + "request": { + "method": "POST", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "86b53bdff3dc73ceff0e58570cb0790799b37ac3cc2a787b342507acbc1a89520cdda9efb8c51a5d64d81d2cdb265a392876be729f2fbad62b540157976c48eb", + "type": "text", + "description": "Login to get a valid token" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"name\":\"Battery\", \"battery_state_point_id\":1, \"soc_point_id\":2, \"power_point_id\":3, \"charge_meter_id\":1, \"discharge_meter_id\":2, \"capacity\": 30, \"nominal_voltage\": 48}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/batteries", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "batteries" + ] + } + }, + "response": [] + }, + { + "name": "PUT Update an Energy Storage Power Station Battery", + "request": { + "method": "PUT", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "08d9de3ccf860300dc3955a4ed0026dd6f2d71d28713ced3074452fa9eccf23d702d52b1946e0733ada378e0691ccd2a72f4be0af2c9770c6d8f2d031abadd63", + "type": "text", + "description": "Login to get a valid token" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"name\":\"Battery\", \"battery_state_point_id\":1, \"soc_point_id\":2, \"power_point_id\":3, \"charge_meter_id\":1, \"discharge_meter_id\":2, \"capacity\": 30, \"nominal_voltage\": 48}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/batteries/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "batteries", + "1" + ] + } + }, + "response": [] + }, + { + "name": "DELETE an Energy Storage Power Station Battery", + "request": { + "method": "DELETE", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "08d9de3ccf860300dc3955a4ed0026dd6f2d71d28713ced3074452fa9eccf23d702d52b1946e0733ada378e0691ccd2a72f4be0af2c9770c6d8f2d031abadd63", + "type": "text", + "description": "Login to get a valid token" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/batteries/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "batteries", + "1" + ] + } + }, + "response": [] + }, + { + "name": "GET All Grids of an Energy Storage Power Station", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "3a7acfe1-f3c3-4561-a985-8a4d23ef54d0", + "type": "default" + }, + { + "key": "Token", + "value": "831f86c46eaa946be6450097c2ecfc2966fecea18853d00ae3147b11123899438fd5394f1bcfc165d0a3d0604baa93eb14f29d0d88c3f75b3bcaa807029e410c", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/grids", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "grids" + ] + } + }, + "response": [] + }, + { + "name": "GET an Energy Storage Power Station Grid", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "3a7acfe1-f3c3-4561-a985-8a4d23ef54d0", + "type": "default" + }, + { + "key": "Token", + "value": "831f86c46eaa946be6450097c2ecfc2966fecea18853d00ae3147b11123899438fd5394f1bcfc165d0a3d0604baa93eb14f29d0d88c3f75b3bcaa807029e410c", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/grids/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "grids", + "1" + ] + } + }, + "response": [] + }, + { + "name": "POST Create new Energy Storage Power Station Grid", + "request": { + "method": "POST", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "d4af151d182e325bda23f89cef3a385e519f601b40ed3158d0b306c2dcaa1b0b190f3a5945b39e9534a25f891270bbe250a38872920f975949ef33becb908198", + "type": "text", + "description": "Login to get a valid token" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"name\":\"Grid\", \"buy_meter_id\":1, \"sell_meter_id\":2, \"capacity\": 30}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/grids/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "grids", + "1" + ] + } + }, + "response": [] + }, + { + "name": "PUT Update an Energy Storage Power Station Grid", + "request": { + "method": "PUT", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "d4af151d182e325bda23f89cef3a385e519f601b40ed3158d0b306c2dcaa1b0b190f3a5945b39e9534a25f891270bbe250a38872920f975949ef33becb908198", + "type": "text", + "description": "Login to get a valid token" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"name\":\"Grid\", \"buy_meter_id\":1, \"sell_meter_id\":2, \"capacity\": 50}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/grids/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "grids", + "1" + ] + } + }, + "response": [] + }, + { + "name": "DELETE an Energy Storage Power Station Grid", + "request": { + "method": "DELETE", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "d4af151d182e325bda23f89cef3a385e519f601b40ed3158d0b306c2dcaa1b0b190f3a5945b39e9534a25f891270bbe250a38872920f975949ef33becb908198", + "type": "text", + "description": "Login to get a valid token" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/grids/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "grids", + "1" + ] + } + }, + "response": [] + }, + { + "name": "GET All Loads of an Energy Storage Power Station", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "3a7acfe1-f3c3-4561-a985-8a4d23ef54d0", + "type": "default" + }, + { + "key": "Token", + "value": "831f86c46eaa946be6450097c2ecfc2966fecea18853d00ae3147b11123899438fd5394f1bcfc165d0a3d0604baa93eb14f29d0d88c3f75b3bcaa807029e410c", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/loads", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "loads" + ] + } + }, + "response": [] + }, + { + "name": "GET an Energy Storage Power Station Load", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "3a7acfe1-f3c3-4561-a985-8a4d23ef54d0", + "type": "default" + }, + { + "key": "Token", + "value": "831f86c46eaa946be6450097c2ecfc2966fecea18853d00ae3147b11123899438fd5394f1bcfc165d0a3d0604baa93eb14f29d0d88c3f75b3bcaa807029e410c", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/loads/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "loads", + "1" + ] + } + }, + "response": [] + }, + { + "name": "POST Create new Energy Storage Power Station Load", + "request": { + "method": "POST", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "08c913a4e5eccc96d590c52002b2ed225dbbf0de52b260d41b912bf989fe9c0bd47a09de0ee0a3b527cac427603b28c73450e08d9084289ecedaaf88cdd865db", + "type": "text", + "description": "Login to get a valid token" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"name\":\"Load\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 30}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/loads/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "loads", + "1" + ] + } + }, + "response": [] + }, + { + "name": "PUT Update an Energy Storage Power Station Load", + "request": { + "method": "PUT", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "08c913a4e5eccc96d590c52002b2ed225dbbf0de52b260d41b912bf989fe9c0bd47a09de0ee0a3b527cac427603b28c73450e08d9084289ecedaaf88cdd865db", + "type": "text", + "description": "Login to get a valid token" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"name\":\"Load\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 50}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/loads/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "loads", + "1" + ] + } + }, + "response": [] + }, + { + "name": "DELETE an Energy Storage Power Station Load", + "request": { + "method": "DELETE", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "08c913a4e5eccc96d590c52002b2ed225dbbf0de52b260d41b912bf989fe9c0bd47a09de0ee0a3b527cac427603b28c73450e08d9084289ecedaaf88cdd865db", + "type": "text", + "description": "Login to get a valid token" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/loads/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "loads", + "1" + ] + } + }, + "response": [] + }, + { + "name": "GET All Power Conversion Systems of an Energy Storage Power Station", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "default" + }, + { + "key": "Token", + "value": "5697392c42fdcec56a010729d9fc4a43fe694c7782bde85861f62605fff463bbbb0453899076a2e033f4193ac2e6f883eb510870e5e97e9ce6fbe84b6079b276", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/powerconversionsystems", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "powerconversionsystems" + ] + } + }, + "response": [] + }, + { + "name": "GET an Energy Storage Power Station Power Conversion System", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "default" + }, + { + "key": "Token", + "value": "5697392c42fdcec56a010729d9fc4a43fe694c7782bde85861f62605fff463bbbb0453899076a2e033f4193ac2e6f883eb510870e5e97e9ce6fbe84b6079b276", + "type": "default" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/powerconversionsystems/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "powerconversionsystems", + "1" + ] + } + }, + "response": [] + }, + { + "name": "POST Create new Energy Storage Power Station Power Conversion System", + "request": { + "method": "POST", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "ac38ab713b8bd9b39c677cf15946ce5abded24f02cc7806acaa9214707f853539ba07d009a375a34acbc8531e8da7d57fa87e5398b0229296d1f02d9a34d3989", + "type": "text", + "description": "Login to get a valid token" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"name\":\"Power Conversion System1\", \"run_state_command_id\":1, \"capacity\": 30, \"charge_start_time1_point_id\":2, \"charge_end_time1_point_id\":3, \"charge_start_time2_point_id\":4,\"charge_end_time2_point_id\":5, \"charge_start_time3_point_id\":6, \"charge_end_time3_point_id\":7, \"charge_start_time4_point_id\":8, \"charge_end_time4_point_id\":9, \"discharge_start_time1_point_id\":10, \"discharge_end_time1_point_id\":11, \"discharge_start_time2_point_id\":12, \"discharge_end_time2_point_id\":13, \"discharge_start_time3_point_id\":14, \"discharge_end_time3_point_id\":15, \"discharge_start_time4_point_id\":16, \"discharge_end_time4_point_id\":17,\"charge_start_time1_command_id\":2, \"charge_end_time1_command_id\":3, \"charge_start_time2_command_id\":4,\"charge_end_time2_command_id\":5, \"charge_start_time3_command_id\":6, \"charge_end_time3_command_id\":7, \"charge_start_time4_command_id\":8, \"charge_end_time4_command_id\":9, \"discharge_start_time1_command_id\":10, \"discharge_end_time1_command_id\":11, \"discharge_start_time2_command_id\":12, \"discharge_end_time2_command_id\":13, \"discharge_start_time3_command_id\":14, \"discharge_end_time3_command_id\":15, \"discharge_start_time4_command_id\":16, \"discharge_end_time4_command_id\":17}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/powerconversionsystems", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "powerconversionsystems" + ] + } + }, + "response": [] + }, + { + "name": "PUT Update an Energy Storage Power Station Power Conversion System", + "request": { + "method": "PUT", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "ac38ab713b8bd9b39c677cf15946ce5abded24f02cc7806acaa9214707f853539ba07d009a375a34acbc8531e8da7d57fa87e5398b0229296d1f02d9a34d3989", + "type": "text", + "description": "Login to get a valid token" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"name\":\"Power Conversion System\", \"run_state_point_id\":1, \"capacity\": 30, \"charge_start_time1_point_id\":2, \"charge_end_time1_point_id\":3, \"charge_start_time2_point_id\":4,\"charge_end_time2_point_id\":5, \"charge_start_time3_point_id\":6, \"charge_end_time3_point_id\":7, \"charge_start_time4_point_id\":8, \"charge_end_time4_point_id\":9, \"discharge_start_time1_point_id\":10, \"discharge_end_time1_point_id\":11, \"discharge_start_time2_point_id\":12, \"discharge_end_time2_point_id\":13, \"discharge_start_time3_point_id\":14, \"discharge_end_time3_point_id\":15, \"discharge_start_time4_point_id\":16, \"discharge_end_time4_point_id\":17,\"charge_start_time1_command_id\":2, \"charge_end_time1_command_id\":3, \"charge_start_time2_command_id\":4,\"charge_end_time2_command_id\":5, \"charge_start_time3_command_id\":6, \"charge_end_time3_command_id\":7, \"charge_start_time4_command_id\":8, \"charge_end_time4_command_id\":9, \"discharge_start_time1_command_id\":10, \"discharge_end_time1_command_id\":11, \"discharge_start_time2_command_id\":12, \"discharge_end_time2_command_id\":13, \"discharge_start_time3_command_id\":14, \"discharge_end_time3_command_id\":15, \"discharge_start_time4_command_id\":16, \"discharge_end_time4_command_id\":17}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/powerconversionsystems/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "powerconversionsystems", + "1" + ] + } + }, + "response": [] + }, + { + "name": "DELETE an Energy Storage Power Station Power Conversion System", + "request": { + "method": "DELETE", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text", + "description": "Any admin users' UUID" + }, + { + "key": "Token", + "value": "08c913a4e5eccc96d590c52002b2ed225dbbf0de52b260d41b912bf989fe9c0bd47a09de0ee0a3b527cac427603b28c73450e08d9084289ecedaaf88cdd865db", + "type": "text", + "description": "Login to get a valid token" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/powerconversionsystems/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "powerconversionsystems", + "1" + ] + } + }, + "response": [] + }, + { + "name": "GET All Users of an Energy Storage Power Station", + "request": { + "method": "GET", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text" + }, + { + "key": "Token", + "value": "831f86c46eaa946be6450097c2ecfc2966fecea18853d00ae3147b11123899438fd5394f1bcfc165d0a3d0604baa93eb14f29d0d88c3f75b3bcaa807029e410c", + "type": "text" + }, + { + "key": "", + "value": "", + "type": "text", + "disabled": true + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/users", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "users" + ] + } + }, + "response": [] + }, + { + "name": "POST Bind an User to an Energy Storage Power Station", + "request": { + "method": "POST", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text" + }, + { + "key": "Token", + "value": "831f86c46eaa946be6450097c2ecfc2966fecea18853d00ae3147b11123899438fd5394f1bcfc165d0a3d0604baa93eb14f29d0d88c3f75b3bcaa807029e410c", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\"data\":{\"user_id\":1}}" + }, + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/users", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "users" + ] + } + }, + "response": [] + }, + { + "name": "DELETE an User from an Energy Storage Power Station", + "request": { + "method": "DELETE", + "header": [ + { + "key": "User-UUID", + "value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4", + "type": "text" + }, + { + "key": "Token", + "value": "831f86c46eaa946be6450097c2ecfc2966fecea18853d00ae3147b11123899438fd5394f1bcfc165d0a3d0604baa93eb14f29d0d88c3f75b3bcaa807029e410c", + "type": "text" + } + ], + "url": { + "raw": "{{base_url}}/energystoragepowerstations/1/users/1", + "host": [ + "{{base_url}}" + ], + "path": [ + "energystoragepowerstations", + "1", + "users", + "1" + ] + } + }, + "response": [] } ] }, @@ -6571,12 +7437,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/batteries/1", + "raw": "{{base_url}}/microgrids/1/batteries/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "batteries", "1" @@ -6608,12 +7474,12 @@ "raw": "{\"data\":{\"name\":\"Battery\", \"battery_state_point_id\":1, \"soc_point_id\":2, \"power_point_id\":3, \"charge_meter_id\":1, \"discharge_meter_id\":2, \"capacity\": 30, \"nominal_voltage\": 48}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/batteries", + "raw": "{{base_url}}/microgrids/1/batteries", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "batteries" ] @@ -6644,12 +7510,12 @@ "raw": "{\"data\":{\"name\":\"Battery\", \"battery_state_point_id\":1, \"soc_point_id\":2, \"power_point_id\":3, \"charge_meter_id\":1, \"discharge_meter_id\":2, \"capacity\": 30, \"nominal_voltage\": 48}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/batteries/1", + "raw": "{{base_url}}/microgrids/1/batteries/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "batteries", "1" @@ -6677,12 +7543,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/batteries/1", + "raw": "{{base_url}}/microgrids/1/batteries/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "batteries", "1" @@ -6738,12 +7604,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/evchargers/1", + "raw": "{{base_url}}/microgrids/1/evchargers/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "evchargers", "1" @@ -6775,12 +7641,12 @@ "raw": "{\"data\":{\"name\":\"EVCharger\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 30}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/evchargers", + "raw": "{{base_url}}/microgrids/1/evchargers", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "evchargers" ] @@ -6811,12 +7677,12 @@ "raw": "{\"data\":{\"name\":\"EVCharger\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 50}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/evchargers/1", + "raw": "{{base_url}}/microgrids/1/evchargers/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "evchargers", "1" @@ -6844,12 +7710,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/evchargers/1", + "raw": "{{base_url}}/microgrids/1/evchargers/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "evchargers", "1" @@ -6905,12 +7771,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/generators/1", + "raw": "{{base_url}}/microgrids/1/generators/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "generators", "1" @@ -6942,12 +7808,12 @@ "raw": "{\"data\":{\"name\":\"Generator\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 30}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/generators", + "raw": "{{base_url}}/microgrids/1/generators", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "generators" ] @@ -6978,12 +7844,12 @@ "raw": "{\"data\":{\"name\":\"Generator\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 50}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/generators/1", + "raw": "{{base_url}}/microgrids/1/generators/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "generators", "1" @@ -7011,12 +7877,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/generators/1", + "raw": "{{base_url}}/microgrids/1/generators/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "generators", "1" @@ -7072,12 +7938,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/grids/1", + "raw": "{{base_url}}/microgrids/1/grids/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "grids", "1" @@ -7109,12 +7975,12 @@ "raw": "{\"data\":{\"name\":\"Grid\", \"buy_meter_id\":1, \"sell_meter_id\":2, \"capacity\": 30}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/grids/1", + "raw": "{{base_url}}/microgrids/1/grids/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "grids", "1" @@ -7146,12 +8012,12 @@ "raw": "{\"data\":{\"name\":\"Grid\", \"buy_meter_id\":1, \"sell_meter_id\":2, \"capacity\": 50}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/grids/1", + "raw": "{{base_url}}/microgrids/1/grids/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "grids", "1" @@ -7179,12 +8045,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/grids/1", + "raw": "{{base_url}}/microgrids/1/grids/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "grids", "1" @@ -7240,12 +8106,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/heatpumps/1", + "raw": "{{base_url}}/microgrids/1/heatpumps/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "heatpumps", "1" @@ -7277,12 +8143,12 @@ "raw": "{\"data\":{\"name\":\"Heatpump\", \"power_point_id\":1, \"electricity_meter_id\":1, \"heat_meter_id\":2, \"cooling_meter_id\":3, \"capacity\": 30}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/heatpumps/1", + "raw": "{{base_url}}/microgrids/1/heatpumps/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "heatpumps", "1" @@ -7314,12 +8180,12 @@ "raw": "{\"data\":{\"name\":\"Heatpump\", \"power_point_id\":1, \"electricity_meter_id\":1, \"heat_meter_id\":2, \"cooling_meter_id\":3, \"capacity\": 50}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/heatpumps/1", + "raw": "{{base_url}}/microgrids/1/heatpumps/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "heatpumps", "1" @@ -7347,12 +8213,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/heatpumps/1", + "raw": "{{base_url}}/microgrids/1/heatpumps/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "heatpumps", "1" @@ -7408,12 +8274,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/loads/1", + "raw": "{{base_url}}/microgrids/1/loads/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "loads", "1" @@ -7445,12 +8311,12 @@ "raw": "{\"data\":{\"name\":\"Load\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 30}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/loads/1", + "raw": "{{base_url}}/microgrids/1/loads/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "loads", "1" @@ -7482,12 +8348,12 @@ "raw": "{\"data\":{\"name\":\"Load\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 50}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/loads/1", + "raw": "{{base_url}}/microgrids/1/loads/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "loads", "1" @@ -7515,12 +8381,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/loads/1", + "raw": "{{base_url}}/microgrids/1/loads/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "loads", "1" @@ -7576,12 +8442,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/photovoltaics/1", + "raw": "{{base_url}}/microgrids/1/photovoltaics/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "photovoltaics", "1" @@ -7613,12 +8479,12 @@ "raw": "{\"data\":{\"name\":\"Photovoltaic\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 30}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/photovoltaics/1", + "raw": "{{base_url}}/microgrids/1/photovoltaics/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "photovoltaics", "1" @@ -7650,12 +8516,12 @@ "raw": "{\"data\":{\"name\":\"Photovoltaic\", \"power_point_id\":1, \"meter_id\":1, \"capacity\": 50}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/photovoltaics/1", + "raw": "{{base_url}}/microgrids/1/photovoltaics/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "photovoltaics", "1" @@ -7683,12 +8549,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/photovoltaics/1", + "raw": "{{base_url}}/microgrids/1/photovoltaics/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "photovoltaics", "1" @@ -7744,12 +8610,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/powerconversionsystems/1", + "raw": "{{base_url}}/microgrids/1/powerconversionsystems/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "powerconversionsystems", "1" @@ -7781,12 +8647,12 @@ "raw": "{\"data\":{\"name\":\"Power Conversion System1\", \"run_state_command_id\":1, \"capacity\": 30, \"charge_start_time1_point_id\":2, \"charge_end_time1_point_id\":3, \"charge_start_time2_point_id\":4,\"charge_end_time2_point_id\":5, \"charge_start_time3_point_id\":6, \"charge_end_time3_point_id\":7, \"charge_start_time4_point_id\":8, \"charge_end_time4_point_id\":9, \"discharge_start_time1_point_id\":10, \"discharge_end_time1_point_id\":11, \"discharge_start_time2_point_id\":12, \"discharge_end_time2_point_id\":13, \"discharge_start_time3_point_id\":14, \"discharge_end_time3_point_id\":15, \"discharge_start_time4_point_id\":16, \"discharge_end_time4_point_id\":17,\"charge_start_time1_command_id\":2, \"charge_end_time1_command_id\":3, \"charge_start_time2_command_id\":4,\"charge_end_time2_command_id\":5, \"charge_start_time3_command_id\":6, \"charge_end_time3_command_id\":7, \"charge_start_time4_command_id\":8, \"charge_end_time4_command_id\":9, \"discharge_start_time1_command_id\":10, \"discharge_end_time1_command_id\":11, \"discharge_start_time2_command_id\":12, \"discharge_end_time2_command_id\":13, \"discharge_start_time3_command_id\":14, \"discharge_end_time3_command_id\":15, \"discharge_start_time4_command_id\":16, \"discharge_end_time4_command_id\":17}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/powerconversionsystems", + "raw": "{{base_url}}/microgrids/1/powerconversionsystems", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "powerconversionsystems" ] @@ -7817,12 +8683,12 @@ "raw": "{\"data\":{\"name\":\"Power Conversion System\", \"run_state_point_id\":1, \"capacity\": 30, \"charge_start_time1_point_id\":2, \"charge_end_time1_point_id\":3, \"charge_start_time2_point_id\":4,\"charge_end_time2_point_id\":5, \"charge_start_time3_point_id\":6, \"charge_end_time3_point_id\":7, \"charge_start_time4_point_id\":8, \"charge_end_time4_point_id\":9, \"discharge_start_time1_point_id\":10, \"discharge_end_time1_point_id\":11, \"discharge_start_time2_point_id\":12, \"discharge_end_time2_point_id\":13, \"discharge_start_time3_point_id\":14, \"discharge_end_time3_point_id\":15, \"discharge_start_time4_point_id\":16, \"discharge_end_time4_point_id\":17,\"charge_start_time1_command_id\":2, \"charge_end_time1_command_id\":3, \"charge_start_time2_command_id\":4,\"charge_end_time2_command_id\":5, \"charge_start_time3_command_id\":6, \"charge_end_time3_command_id\":7, \"charge_start_time4_command_id\":8, \"charge_end_time4_command_id\":9, \"discharge_start_time1_command_id\":10, \"discharge_end_time1_command_id\":11, \"discharge_start_time2_command_id\":12, \"discharge_end_time2_command_id\":13, \"discharge_start_time3_command_id\":14, \"discharge_end_time3_command_id\":15, \"discharge_start_time4_command_id\":16, \"discharge_end_time4_command_id\":17}}" }, "url": { - "raw": "{{base_url}}/microgrid/1/powerconversionsystems/1", + "raw": "{{base_url}}/microgrids/1/powerconversionsystems/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "powerconversionsystems", "1" @@ -7850,12 +8716,12 @@ } ], "url": { - "raw": "{{base_url}}/microgrid/1/powerconversionsystems/1", + "raw": "{{base_url}}/microgrids/1/powerconversionsystems/1", "host": [ "{{base_url}}" ], "path": [ - "microgrid", + "microgrids", "1", "powerconversionsystems", "1" @@ -7901,7 +8767,7 @@ "response": [] }, { - "name": "POST Bind a User to a Microgrid", + "name": "POST Bind an User to a Microgrid", "request": { "method": "POST", "header": [ @@ -7935,7 +8801,7 @@ "response": [] }, { - "name": "DELETE a User from a Microgrid", + "name": "DELETE an User from a Microgrid", "request": { "method": "DELETE", "header": [ diff --git a/myems-api/app.py b/myems-api/app.py index 9e089cd970..ada905ed6a 100644 --- a/myems-api/app.py +++ b/myems-api/app.py @@ -251,6 +251,30 @@ energystoragepowerstation.EnergyStoragePowerStationCollection()) api.add_route('/energystoragepowerstations/{id_}', energystoragepowerstation.EnergyStoragePowerStationItem()) +api.add_route('/energystoragepowerstations/{id_}/sensors', + energystoragepowerstation.EnergyStoragePowerStationSensorCollection()) +api.add_route('/energystoragepowerstations/{id_}/sensors/{sid}', + energystoragepowerstation.EnergyStoragePowerStationSensorItem()) +api.add_route('/energystoragepowerstations/{id_}/batteries', + energystoragepowerstation.EnergyStoragePowerStationBatteryCollection()) +api.add_route('/energystoragepowerstations/{id_}/batteries/{bid}', + energystoragepowerstation.EnergyStoragePowerStationBatteryItem()) +api.add_route('/energystoragepowerstations/{id_}/grids', + energystoragepowerstation.EnergyStoragePowerStationGridCollection()) +api.add_route('/energystoragepowerstations/{id_}/grids/{gid}', + energystoragepowerstation.EnergyStoragePowerStationGridItem()) +api.add_route('/energystoragepowerstations/{id_}/loads', + energystoragepowerstation.EnergyStoragePowerStationLoadCollection()) +api.add_route('/energystoragepowerstations/{id_}/loads/{lid}', + energystoragepowerstation.EnergyStoragePowerStationLoadItem()) +api.add_route('/energystoragepowerstations/{id_}/powerconversionsystems', + energystoragepowerstation.EnergyStoragePowerStationPowerconversionsystemCollection()) +api.add_route('/energystoragepowerstations/{id_}/powerconversionsystems/{pid}', + energystoragepowerstation.EnergyStoragePowerStationPowerconversionsystemItem()) +api.add_route('/energystoragepowerstations/{id_}/users', + energystoragepowerstation.EnergyStoragePowerStationUserCollection()) +api.add_route('/energystoragepowerstations/{id_}/users/{uid}', + energystoragepowerstation.EnergyStoragePowerStationUserItem()) api.add_route('/equipments', equipment.EquipmentCollection()) diff --git a/myems-api/core/energystoragepowerstation.py b/myems-api/core/energystoragepowerstation.py index 9d6abe8306..e3e4672c13 100644 --- a/myems-api/core/energystoragepowerstation.py +++ b/myems-api/core/energystoragepowerstation.py @@ -9,7 +9,7 @@ class EnergyStoragePowerStationCollection: @staticmethod def __init__(): - """"Initializes EnergyStoragePowerStationCollection""" + """"Initializes Class""" pass @staticmethod @@ -228,7 +228,7 @@ def on_post(req, resp): class EnergyStoragePowerStationItem: @staticmethod def __init__(): - """"Initializes EnergyStoragePowerStationItem""" + """"Initializes Class""" pass @staticmethod @@ -487,3 +487,3012 @@ def on_put(req, resp, id_): cnx.close() resp.status = falcon.HTTP_200 + + +class EnergyStoragePowerStationSensorCollection: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + query = (" SELECT s.id, s.name, s.uuid " + " FROM tbl_energy_storage_power_stations e, " + " tbl_energy_storage_power_stations_sensors es, tbl_sensors s " + " WHERE es.energy_storage_power_station_id = e.id AND s.id = es.sensor_id AND e.id = %s " + " ORDER BY s.id ") + cursor.execute(query, (id_,)) + rows = cursor.fetchall() + + result = list() + if rows is not None and len(rows) > 0: + for row in rows: + meta_result = {"id": row[0], "name": row[1], "uuid": row[2]} + result.append(meta_result) + + resp.text = json.dumps(result) + + @staticmethod + @user_logger + def on_post(req, resp, id_): + """Handles POST requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + new_values = json.loads(raw_json) + + if 'sensor_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['sensor_id'], int) or \ + new_values['data']['sensor_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_SENSOR_ID') + sensor_id = new_values['data']['sensor_id'] + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_sensors " + " WHERE id = %s ", (sensor_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.SENSOR_NOT_FOUND') + + query = (" SELECT id " + " FROM tbl_energy_storage_power_stations_sensors " + " WHERE energy_storage_power_station_id = %s AND sensor_id = %s") + cursor.execute(query, (id_, sensor_id,)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.ERROR', + description='API.ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_EXISTS') + + add_row = (" INSERT INTO tbl_energy_storage_power_stations_sensors " + " (energy_storage_power_station_id, sensor_id) " + " VALUES (%s, %s) ") + cursor.execute(add_row, (id_, sensor_id,)) + cnx.commit() + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_201 + resp.location = '/energystoragepowerstations/' + str(id_) + '/sensors/' + str(sensor_id) + + +class EnergyStoragePowerStationSensorItem: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_, sid): + resp.status = falcon.HTTP_200 + + @staticmethod + @user_logger + def on_delete(req, resp, id_, sid): + admin_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + if not sid.isdigit() or int(sid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_SENSOR_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_sensors " + " WHERE id = %s ", (sid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.SENSOR_NOT_FOUND') + + cursor.execute(" SELECT id " + " FROM tbl_energy_storage_power_stations_sensors " + " WHERE energy_storage_power_station_id = %s AND sensor_id = %s ", (id_, sid)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_SENSOR_RELATION_NOT_FOUND') + + cursor.execute(" DELETE FROM tbl_energy_storage_power_stations_sensors " + " WHERE energy_storage_power_station_id = %s AND sensor_id = %s ", (id_, sid)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_204 + + +class EnergyStoragePowerStationBatteryCollection: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + # query meter dict + query = (" SELECT id, name, uuid " + " FROM tbl_meters ") + cursor.execute(query) + rows_meters = cursor.fetchall() + + meter_dict = dict() + if rows_meters is not None and len(rows_meters) > 0: + for row in rows_meters: + meter_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query point dict + query = (" SELECT id, name " + " FROM tbl_points ") + cursor.execute(query) + rows_points = cursor.fetchall() + + point_dict = dict() + if rows_points is not None and len(rows_points) > 0: + for row in rows_points: + point_dict[row[0]] = {"id": row[0], + "name": row[1]} + + query = (" SELECT id, name, uuid, " + " battery_state_point_id, soc_point_id, power_point_id, " + " charge_meter_id, discharge_meter_id, capacity, nominal_voltage " + " FROM tbl_energy_storage_power_stations_batteries " + " WHERE energy_storage_power_station_id = %s " + " ORDER BY name ") + cursor.execute(query, (id_,)) + rows = cursor.fetchall() + + result = list() + if rows is not None and len(rows) > 0: + for row in rows: + battery_state_point = point_dict.get(row[3]) + soc_point = point_dict.get(row[4]) + power_point = point_dict.get(row[5]) + charge_meter = meter_dict.get(row[6]) + discharge_meter = meter_dict.get(row[7]) + meta_result = {"id": row[0], + "name": row[1], + "uuid": row[2], + "battery_state_point": battery_state_point, + "soc_point": soc_point, + "power_point": power_point, + "charge_meter": charge_meter, + "discharge_meter": discharge_meter, + "capacity": row[8], + "nominal_voltage": row[9]} + result.append(meta_result) + + resp.text = json.dumps(result) + + @staticmethod + @user_logger + def on_post(req, resp, id_): + """Handles POST requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + new_values = json.loads(raw_json) + + if 'name' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['name'], str) or \ + len(str.strip(new_values['data']['name'])) == 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME') + name = str.strip(new_values['data']['name']) + + if 'battery_state_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['battery_state_point_id'], int) or \ + new_values['data']['battery_state_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_BATTERY_STATE_POINT_ID') + battery_state_point_id = new_values['data']['battery_state_point_id'] + + if 'soc_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['soc_point_id'], int) or \ + new_values['data']['soc_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_SOC_POINT_ID') + soc_point_id = new_values['data']['soc_point_id'] + + if 'power_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['power_point_id'], int) or \ + new_values['data']['power_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_POWER_POINT_ID') + power_point_id = new_values['data']['power_point_id'] + + if 'charge_meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_meter_id'], int) or \ + new_values['data']['charge_meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_METER_ID') + charge_meter_id = new_values['data']['charge_meter_id'] + + if 'discharge_meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_meter_id'], int) or \ + new_values['data']['discharge_meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_METER_ID') + discharge_meter_id = new_values['data']['discharge_meter_id'] + + if 'capacity' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['capacity'], float) or + isinstance(new_values['data']['capacity'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CAPACITY') + capacity = float(new_values['data']['capacity']) + + if 'nominal_voltage' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['nominal_voltage'], float) or + isinstance(new_values['data']['nominal_voltage'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_NOMINAL_VOLTAGE') + nominal_voltage = float(new_values['data']['nominal_voltage']) + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_batteries " + " WHERE energy_storage_power_station_id = %s AND name = %s ", + (id_, name,)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (battery_state_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.BATTERY_STATE_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (soc_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.SOC_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (power_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.POWER_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (charge_meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.CHARGE_METER_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (discharge_meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.DISCHARGE_METER_NOT_FOUND') + + add_values = (" INSERT INTO tbl_energy_storage_power_stations_batteries " + " (name, uuid, energy_storage_power_station_id, " + " battery_state_point_id, soc_point_id, power_point_id, " + " charge_meter_id, discharge_meter_id, capacity, nominal_voltage) " + " VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) ") + cursor.execute(add_values, (name, + str(uuid.uuid4()), + id_, + battery_state_point_id, + soc_point_id, + power_point_id, + charge_meter_id, + discharge_meter_id, + capacity, + nominal_voltage)) + new_id = cursor.lastrowid + cnx.commit() + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_201 + resp.location = '/energystoragepowerstations/' + str(id_) + '/batteries/' + str(new_id) + + +class EnergyStoragePowerStationBatteryItem: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_, bid): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_, bid): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not bid.isdigit() or int(bid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + # query energy storage power station dict + query = (" SELECT id, name, uuid " + " FROM tbl_energy_storage_power_stations ") + cursor.execute(query) + rows_energystoragepowerstations = cursor.fetchall() + + energy_storage_power_station_dict = dict() + if rows_energystoragepowerstations is not None and len(rows_energystoragepowerstations) > 0: + for row in rows_energystoragepowerstations: + energy_storage_power_station_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query meter dict + query = (" SELECT id, name, uuid " + " FROM tbl_meters ") + cursor.execute(query) + rows_meters = cursor.fetchall() + + meter_dict = dict() + if rows_meters is not None and len(rows_meters) > 0: + for row in rows_meters: + meter_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query point dict + query = (" SELECT id, name " + " FROM tbl_points ") + cursor.execute(query) + rows_points = cursor.fetchall() + + point_dict = dict() + if rows_points is not None and len(rows_points) > 0: + for row in rows_points: + point_dict[row[0]] = {"id": row[0], + "name": row[1]} + + query = (" SELECT id, name, uuid, energy_storage_power_station_id, " + " battery_state_point_id, soc_point_id, power_point_id, " + " charge_meter_id, discharge_meter_id, capacity, nominal_voltage " + " FROM tbl_energy_storage_power_stations_batteries " + " WHERE id = %s ") + cursor.execute(query, (bid,)) + row = cursor.fetchone() + cursor.close() + cnx.close() + + if row is None: + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND') + else: + energy_storage_power_station = energy_storage_power_station_dict.get(row[3]) + battery_state_point = point_dict.get(row[4]) + soc_point = point_dict.get(row[5]) + power_point = point_dict.get(row[6]) + charge_meter = meter_dict.get(row[7]) + discharge_meter = meter_dict.get(row[8]) + meta_result = {"id": row[0], + "name": row[1], + "uuid": row[2], + "energy_storage_power_station": energy_storage_power_station, + "battery_state_point": battery_state_point, + "soc_point": soc_point, + "power_point": power_point, + "charge_meter": charge_meter, + "discharge_meter": discharge_meter, + "capacity": row[9], + "nominal_voltage": row[10]} + + resp.text = json.dumps(meta_result) + + @staticmethod + @user_logger + def on_delete(req, resp, id_, bid): + admin_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not bid.isdigit() or int(bid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_batteries " + " WHERE id = %s ", (bid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND') + + cursor.execute(" DELETE FROM tbl_energy_storage_power_stations_batteries " + " WHERE id = %s ", (bid,)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_204 + + @staticmethod + @user_logger + def on_put(req, resp, id_, bid): + """Handles PUT requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not bid.isdigit() or int(bid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_ID') + + new_values = json.loads(raw_json) + + if 'name' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['name'], str) or \ + len(str.strip(new_values['data']['name'])) == 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_BATTERY_NAME') + name = str.strip(new_values['data']['name']) + + if 'battery_state_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['battery_state_point_id'], int) or \ + new_values['data']['battery_state_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_BATTERY_STATE_POINT_ID') + battery_state_point_id = new_values['data']['battery_state_point_id'] + + if 'soc_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['soc_point_id'], int) or \ + new_values['data']['soc_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_SOC_POINT_ID') + soc_point_id = new_values['data']['soc_point_id'] + + if 'power_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['power_point_id'], int) or \ + new_values['data']['power_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_POWER_POINT_ID') + power_point_id = new_values['data']['power_point_id'] + + if 'charge_meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_meter_id'], int) or \ + new_values['data']['charge_meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_METER_ID') + charge_meter_id = new_values['data']['charge_meter_id'] + + if 'discharge_meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_meter_id'], int) or \ + new_values['data']['discharge_meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_METER_ID') + discharge_meter_id = new_values['data']['discharge_meter_id'] + + if 'capacity' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['capacity'], float) or + isinstance(new_values['data']['capacity'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CAPACITY') + capacity = float(new_values['data']['capacity']) + + if 'nominal_voltage' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['nominal_voltage'], float) or + isinstance(new_values['data']['nominal_voltage'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_NOMINAL_VOLTAGE') + nominal_voltage = float(new_values['data']['nominal_voltage']) + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", + (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_batteries " + " WHERE id = %s ", (bid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_BATTERY_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_batteries " + " WHERE energy_storage_power_station_id = %s AND name = %s AND id != %s ", + (id_, name, bid)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.ENERGY_STORAGE_POWER_STATION_BATTERY_NAME_IS_ALREADY_IN_USE') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (battery_state_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.BATTERY_STATE_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (soc_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.SOC_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (power_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.POWER_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (charge_meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.CHARGE_METER_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (discharge_meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.DISCHARGE_METER_NOT_FOUND') + + update_row = (" UPDATE tbl_energy_storage_power_stations_batteries " + " SET name = %s, energy_storage_power_station_id = %s, " + " battery_state_point_id = %s, soc_point_id = %s, power_point_id = %s, " + " charge_meter_id = %s, discharge_meter_id = %s, capacity = %s, nominal_voltage = %s " + " WHERE id = %s ") + cursor.execute(update_row, (name, + id_, + battery_state_point_id, + soc_point_id, + power_point_id, + charge_meter_id, + discharge_meter_id, + capacity, + nominal_voltage, + bid)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_200 + + +class EnergyStoragePowerStationCommandCollection: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + query = (" SELECT c.id, c.name, c.uuid " + " FROM tbl_energy_storage_power_stations m, " + " tbl_energy_storage_power_stations_commands mc, " + " tbl_commands c " + " WHERE mc.energy_storage_power_station_id = m.id AND c.id = mc.command_id AND m.id = %s " + " ORDER BY c.id ") + cursor.execute(query, (id_,)) + rows = cursor.fetchall() + + result = list() + if rows is not None and len(rows) > 0: + for row in rows: + meta_result = {"id": row[0], "name": row[1], "uuid": row[2]} + result.append(meta_result) + + resp.text = json.dumps(result) + + +class EnergyStoragePowerStationGridCollection: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + # query meter dict + query = (" SELECT id, name, uuid " + " FROM tbl_meters ") + cursor.execute(query) + rows_meters = cursor.fetchall() + + meter_dict = dict() + if rows_meters is not None and len(rows_meters) > 0: + for row in rows_meters: + meter_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query point dict + query = (" SELECT id, name " + " FROM tbl_points ") + cursor.execute(query) + rows_points = cursor.fetchall() + + point_dict = dict() + if rows_points is not None and len(rows_points) > 0: + for row in rows_points: + point_dict[row[0]] = {"id": row[0], + "name": row[1]} + + query = (" SELECT id, name, uuid, " + " power_point_id, buy_meter_id, sell_meter_id, capacity " + " FROM tbl_energy_storage_power_stations_grids " + " WHERE energy_storage_power_station_id = %s " + " ORDER BY name ") + cursor.execute(query, (id_,)) + rows = cursor.fetchall() + + result = list() + if rows is not None and len(rows) > 0: + for row in rows: + power_point = point_dict.get(row[3]) + buy_meter = meter_dict.get(row[4]) + sell_meter = meter_dict.get(row[5]) + meta_result = {"id": row[0], + "name": row[1], + "uuid": row[2], + "power_point": power_point, + "buy_meter": buy_meter, + "sell_meter": sell_meter, + "capacity": row[6]} + result.append(meta_result) + + resp.text = json.dumps(result) + + @staticmethod + @user_logger + def on_post(req, resp, id_): + """Handles POST requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + new_values = json.loads(raw_json) + + if 'name' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['name'], str) or \ + len(str.strip(new_values['data']['name'])) == 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME') + name = str.strip(new_values['data']['name']) + + if 'power_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['power_point_id'], int) or \ + new_values['data']['power_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_POWER_POINT_ID') + power_point_id = new_values['data']['power_point_id'] + + if 'buy_meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['buy_meter_id'], int) or \ + new_values['data']['buy_meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_BUY_METER_ID') + buy_meter_id = new_values['data']['buy_meter_id'] + + if 'sell_meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['sell_meter_id'], int) or \ + new_values['data']['sell_meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_SELL_METER_ID') + sell_meter_id = new_values['data']['sell_meter_id'] + + if 'capacity' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['capacity'], float) or + isinstance(new_values['data']['capacity'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CAPACITY') + capacity = float(new_values['data']['capacity']) + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", + (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_grids " + " WHERE energy_storage_power_station_id = %s AND name = %s ", + (id_, name,)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (power_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.POWER_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (buy_meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.BUY_METER_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (sell_meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.SELL_METER_NOT_FOUND') + + add_values = (" INSERT INTO tbl_energy_storage_power_stations_grids " + " (name, uuid, energy_storage_power_station_id, power_point_id, buy_meter_id, sell_meter_id, capacity) " + " VALUES (%s, %s, %s, %s, %s, %s, %s) ") + cursor.execute(add_values, (name, + str(uuid.uuid4()), + id_, + power_point_id, + buy_meter_id, + sell_meter_id, + capacity)) + new_id = cursor.lastrowid + cnx.commit() + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_201 + resp.location = '/energystoragepowerstations/' + str(id_) + '/grids/' + str(new_id) + + +class EnergyStoragePowerStationGridItem: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_, gid): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_, gid): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not gid.isdigit() or int(gid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + # query energy storage power station dict + query = (" SELECT id, name, uuid " + " FROM tbl_energy_storage_power_stations ") + cursor.execute(query) + rows_energystoragepowerstations = cursor.fetchall() + + energy_storage_power_station_dict = dict() + if rows_energystoragepowerstations is not None and len(rows_energystoragepowerstations) > 0: + for row in rows_energystoragepowerstations: + energy_storage_power_station_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query meter dict + query = (" SELECT id, name, uuid " + " FROM tbl_meters ") + cursor.execute(query) + rows_meters = cursor.fetchall() + + meter_dict = dict() + if rows_meters is not None and len(rows_meters) > 0: + for row in rows_meters: + meter_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query point dict + query = (" SELECT id, name " + " FROM tbl_points ") + cursor.execute(query) + rows_points = cursor.fetchall() + + point_dict = dict() + if rows_points is not None and len(rows_points) > 0: + for row in rows_points: + point_dict[row[0]] = {"id": row[0], + "name": row[1]} + + query = (" SELECT id, name, uuid, energy_storage_power_station_id, power_point_id, buy_meter_id, sell_meter_id, capacity " + " FROM tbl_energy_storage_power_stations_grids " + " WHERE id = %s ") + cursor.execute(query, (gid,)) + row = cursor.fetchone() + cursor.close() + cnx.close() + + if row is None: + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND') + else: + energy_storage_power_station = energy_storage_power_station_dict.get(row[3]) + power_point = point_dict.get(row[4]) + buy_meter = meter_dict.get(row[5]) + sell_meter = meter_dict.get(row[6]) + meta_result = {"id": row[0], + "name": row[1], + "uuid": row[2], + "energy_storage_power_station": energy_storage_power_station, + "power_point": power_point, + "buy_meter": buy_meter, + "sell_meter": sell_meter, + "capacity": row[7]} + + resp.text = json.dumps(meta_result) + + @staticmethod + @user_logger + def on_delete(req, resp, id_, gid): + admin_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not gid.isdigit() or int(gid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_grids " + " WHERE id = %s ", (gid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND') + + cursor.execute(" DELETE FROM tbl_energy_storage_power_stations_grids " + " WHERE id = %s ", (gid,)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_204 + + @staticmethod + @user_logger + def on_put(req, resp, id_, gid): + """Handles PUT requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + if not gid.isdigit() or int(gid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_GRID_ID') + + new_values = json.loads(raw_json) + + if 'name' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['name'], str) or \ + len(str.strip(new_values['data']['name'])) == 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_GRID_NAME') + name = str.strip(new_values['data']['name']) + + if 'power_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['power_point_id'], int) or \ + new_values['data']['power_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_POWER_POINT_ID') + power_point_id = new_values['data']['power_point_id'] + + if 'buy_meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['buy_meter_id'], int) or \ + new_values['data']['buy_meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_BUY_METER_ID') + buy_meter_id = new_values['data']['buy_meter_id'] + + if 'sell_meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['sell_meter_id'], int) or \ + new_values['data']['sell_meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_METER_ID') + sell_meter_id = new_values['data']['sell_meter_id'] + + if 'capacity' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['capacity'], float) or + isinstance(new_values['data']['capacity'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CAPACITY') + capacity = float(new_values['data']['capacity']) + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_grids " + " WHERE id = %s ", (gid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_GRID_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_grids " + " WHERE energy_storage_power_station_id = %s AND name = %s AND id != %s ", + (id_, name, gid)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.ENERGY_STORAGE_POWER_STATION_GRID_NAME_IS_ALREADY_IN_USE') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (power_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.POWER_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (buy_meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.BUY_METER_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (sell_meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.SELL_METER_NOT_FOUND') + + update_row = (" UPDATE tbl_energy_storage_power_stations_grids " + " SET name = %s, energy_storage_power_station_id = %s, " + " power_point_id = %s, buy_meter_id = %s, sell_meter_id = %s, capacity = %s " + " WHERE id = %s ") + cursor.execute(update_row, (name, + id_, + power_point_id, + buy_meter_id, + sell_meter_id, + capacity, + gid)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_200 + + +class EnergyStoragePowerStationLoadCollection: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + # query meter dict + query = (" SELECT id, name, uuid " + " FROM tbl_meters ") + cursor.execute(query) + rows_meters = cursor.fetchall() + + meter_dict = dict() + if rows_meters is not None and len(rows_meters) > 0: + for row in rows_meters: + meter_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query point dict + query = (" SELECT id, name " + " FROM tbl_points ") + cursor.execute(query) + rows_points = cursor.fetchall() + + point_dict = dict() + if rows_points is not None and len(rows_points) > 0: + for row in rows_points: + point_dict[row[0]] = {"id": row[0], + "name": row[1]} + + query = (" SELECT id, name, uuid, " + " power_point_id, meter_id, capacity " + " FROM tbl_energy_storage_power_stations_loads " + " WHERE energy_storage_power_station_id = %s " + " ORDER BY name ") + cursor.execute(query, (id_,)) + rows = cursor.fetchall() + + result = list() + if rows is not None and len(rows) > 0: + for row in rows: + power_point = point_dict.get(row[3]) + meter = meter_dict.get(row[4]) + meta_result = {"id": row[0], + "name": row[1], + "uuid": row[2], + "power_point": power_point, + "meter": meter, + "capacity": row[5]} + result.append(meta_result) + + resp.text = json.dumps(result) + + @staticmethod + @user_logger + def on_post(req, resp, id_): + """Handles POST requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + new_values = json.loads(raw_json) + + if 'name' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['name'], str) or \ + len(str.strip(new_values['data']['name'])) == 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME') + name = str.strip(new_values['data']['name']) + + if 'power_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['power_point_id'], int) or \ + new_values['data']['power_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_POWER_POINT_ID') + power_point_id = new_values['data']['power_point_id'] + + if 'meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['meter_id'], int) or \ + new_values['data']['meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_METER_ID') + meter_id = new_values['data']['meter_id'] + + if 'capacity' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['capacity'], float) or + isinstance(new_values['data']['capacity'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CAPACITY') + capacity = float(new_values['data']['capacity']) + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", + (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_loads " + " WHERE energy_storage_power_station_id = %s AND name = %s ", + (id_, name,)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (power_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.POWER_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.METER_NOT_FOUND') + + add_values = (" INSERT INTO tbl_energy_storage_power_stations_loads " + " (name, uuid, energy_storage_power_station_id, power_point_id, meter_id, capacity) " + " VALUES (%s, %s, %s, %s, %s, %s) ") + cursor.execute(add_values, (name, + str(uuid.uuid4()), + id_, + power_point_id, + meter_id, + capacity)) + new_id = cursor.lastrowid + cnx.commit() + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_201 + resp.location = '/energystoragepowerstations/' + str(id_) + '/loads/' + str(new_id) + + +class EnergyStoragePowerStationLoadItem: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_, lid): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_, lid): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not lid.isdigit() or int(lid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + # query energy storage power station dict + query = (" SELECT id, name, uuid " + " FROM tbl_energy_storage_power_stations ") + cursor.execute(query) + rows_energystoragepowerstations = cursor.fetchall() + + energy_storage_power_station_dict = dict() + if rows_energystoragepowerstations is not None and len(rows_energystoragepowerstations) > 0: + for row in rows_energystoragepowerstations: + energy_storage_power_station_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query meter dict + query = (" SELECT id, name, uuid " + " FROM tbl_meters ") + cursor.execute(query) + rows_meters = cursor.fetchall() + + meter_dict = dict() + if rows_meters is not None and len(rows_meters) > 0: + for row in rows_meters: + meter_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query point dict + query = (" SELECT id, name " + " FROM tbl_points ") + cursor.execute(query) + rows_points = cursor.fetchall() + + point_dict = dict() + if rows_points is not None and len(rows_points) > 0: + for row in rows_points: + point_dict[row[0]] = {"id": row[0], + "name": row[1]} + + query = (" SELECT id, name, uuid, energy_storage_power_station_id, power_point_id, meter_id, capacity " + " FROM tbl_energy_storage_power_stations_loads " + " WHERE id = %s ") + cursor.execute(query, (lid,)) + row = cursor.fetchone() + cursor.close() + cnx.close() + + if row is None: + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND') + else: + energy_storage_power_station = energy_storage_power_station_dict.get(row[3]) + power_point = point_dict.get(row[4]) + meter = meter_dict.get(row[5]) + meta_result = {"id": row[0], + "name": row[1], + "uuid": row[2], + "energy_storage_power_station": energy_storage_power_station, + "power_point": power_point, + "meter": meter, + "capacity": row[6]} + + resp.text = json.dumps(meta_result) + + @staticmethod + @user_logger + def on_delete(req, resp, id_, lid): + admin_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not lid.isdigit() or int(lid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_loads " + " WHERE id = %s ", (lid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND') + + cursor.execute(" DELETE FROM tbl_energy_storage_power_stations_loads " + " WHERE id = %s ", (lid,)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_204 + + @staticmethod + @user_logger + def on_put(req, resp, id_, lid): + """Handles PUT requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not lid.isdigit() or int(lid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_ID') + + new_values = json.loads(raw_json) + + if 'name' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['name'], str) or \ + len(str.strip(new_values['data']['name'])) == 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_LOAD_NAME') + name = str.strip(new_values['data']['name']) + + if 'power_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['power_point_id'], int) or \ + new_values['data']['power_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_POWER_POINT_ID') + power_point_id = new_values['data']['power_point_id'] + + if 'meter_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['meter_id'], int) or \ + new_values['data']['meter_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_METER_ID') + meter_id = new_values['data']['meter_id'] + + if 'capacity' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['capacity'], float) or + isinstance(new_values['data']['capacity'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CAPACITY') + capacity = float(new_values['data']['capacity']) + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_loads " + " WHERE id = %s ", (lid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_LOAD_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_loads " + " WHERE energy_storage_power_station_id = %s AND name = %s AND id != %s ", + (id_, name, lid)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.ENERGY_STORAGE_POWER_STATION_LOAD_NAME_IS_ALREADY_IN_USE') + + cursor.execute(" SELECT name " + " FROM tbl_points " + " WHERE id = %s ", + (power_point_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.POWER_POINT_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_meters " + " WHERE id = %s ", + (meter_id,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.METER_NOT_FOUND') + + update_row = (" UPDATE tbl_energy_storage_power_stations_loads " + " SET name = %s, energy_storage_power_station_id = %s, power_point_id = %s, meter_id = %s, capacity = %s " + " WHERE id = %s ") + cursor.execute(update_row, (name, + id_, + power_point_id, + meter_id, + capacity, + lid)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_200 + + +class EnergyStoragePowerStationPowerconversionsystemCollection: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + # query point dict + query = (" SELECT id, name " + " FROM tbl_points ") + cursor.execute(query) + rows_points = cursor.fetchall() + + point_dict = dict() + if rows_points is not None and len(rows_points) > 0: + for row in rows_points: + point_dict[row[0]] = {"id": row[0], + "name": row[1]} + # query command dict + query = (" SELECT id, name " + " FROM tbl_commands ") + cursor.execute(query) + rows_commands = cursor.fetchall() + + command_dict = dict() + if rows_commands is not None and len(rows_commands) > 0: + for row in rows_commands: + command_dict[row[0]] = {"id": row[0], + "name": row[1]} + + query = (" SELECT id, name, uuid, run_state_point_id, capacity, " + " charge_start_time1_point_id, charge_end_time1_point_id, " + " charge_start_time2_point_id, charge_end_time2_point_id, " + " charge_start_time3_point_id, charge_end_time3_point_id, " + " charge_start_time4_point_id, charge_end_time4_point_id, " + " discharge_start_time1_point_id, discharge_end_time1_point_id, " + " discharge_start_time2_point_id, discharge_end_time2_point_id, " + " discharge_start_time3_point_id, discharge_end_time3_point_id, " + " discharge_start_time4_point_id, discharge_end_time4_point_id, " + " charge_start_time1_command_id, charge_end_time1_command_id, " + " charge_start_time2_command_id, charge_end_time2_command_id, " + " charge_start_time3_command_id, charge_end_time3_command_id, " + " charge_start_time4_command_id, charge_end_time4_command_id, " + " discharge_start_time1_command_id, discharge_end_time1_command_id, " + " discharge_start_time2_command_id, discharge_end_time2_command_id, " + " discharge_start_time3_command_id, discharge_end_time3_command_id, " + " discharge_start_time4_command_id, discharge_end_time4_command_id " + " FROM tbl_energy_storage_power_stations_power_conversion_systems " + " WHERE energy_storage_power_station_id = %s " + " ORDER BY name ") + cursor.execute(query, (id_,)) + rows = cursor.fetchall() + + result = list() + if rows is not None and len(rows) > 0: + for row in rows: + run_state_point = point_dict.get(row[3]) + charge_start_time1_point = point_dict.get(row[5]) + charge_end_time1_point = point_dict.get(row[6]) + charge_start_time2_point = point_dict.get(row[7]) + charge_end_time2_point = point_dict.get(row[8]) + charge_start_time3_point = point_dict.get(row[9]) + charge_end_time3_point = point_dict.get(row[10]) + charge_start_time4_point = point_dict.get(row[11]) + charge_end_time4_point = point_dict.get(row[12]) + discharge_start_time1_point = point_dict.get(row[13]) + discharge_end_time1_point = point_dict.get(row[14]) + discharge_start_time2_point = point_dict.get(row[15]) + discharge_end_time2_point = point_dict.get(row[16]) + discharge_start_time3_point = point_dict.get(row[17]) + discharge_end_time3_point = point_dict.get(row[18]) + discharge_start_time4_point = point_dict.get(row[19]) + discharge_end_time4_point = point_dict.get(row[20]) + charge_start_time1_command = command_dict.get(row[21]) + charge_end_time1_command = command_dict.get(row[22]) + charge_start_time2_command = command_dict.get(row[23]) + charge_end_time2_command = command_dict.get(row[24]) + charge_start_time3_command = command_dict.get(row[25]) + charge_end_time3_command = command_dict.get(row[26]) + charge_start_time4_command = command_dict.get(row[27]) + charge_end_time4_command = command_dict.get(row[28]) + discharge_start_time1_command = command_dict.get(row[29]) + discharge_end_time1_command = command_dict.get(row[30]) + discharge_start_time2_command = command_dict.get(row[31]) + discharge_end_time2_command = command_dict.get(row[32]) + discharge_start_time3_command = command_dict.get(row[33]) + discharge_end_time3_command = command_dict.get(row[34]) + discharge_start_time4_command = command_dict.get(row[35]) + discharge_end_time4_command = command_dict.get(row[36]) + meta_result = {"id": row[0], + "name": row[1], + "uuid": row[2], + "run_state_point": run_state_point, + "capacity": row[4], + "charge_start_time1_point": charge_start_time1_point, + "charge_end_time1_point": charge_end_time1_point, + "charge_start_time2_point": charge_start_time2_point, + "charge_end_time2_point": charge_end_time2_point, + "charge_start_time3_point": charge_start_time3_point, + "charge_end_time3_point": charge_end_time3_point, + "charge_start_time4_point": charge_start_time4_point, + "charge_end_time4_point": charge_end_time4_point, + "discharge_start_time1_point": discharge_start_time1_point, + "discharge_end_time1_point": discharge_end_time1_point, + "discharge_start_time2_point": discharge_start_time2_point, + "discharge_end_time2_point": discharge_end_time2_point, + "discharge_start_time3_point": discharge_start_time3_point, + "discharge_end_time3_point": discharge_end_time3_point, + "discharge_start_time4_point": discharge_start_time4_point, + "discharge_end_time4_point": discharge_end_time4_point, + "charge_start_time1_command": charge_start_time1_command, + "charge_end_time1_command": charge_end_time1_command, + "charge_start_time2_command": charge_start_time2_command, + "charge_end_time2_command": charge_end_time2_command, + "charge_start_time3_command": charge_start_time3_command, + "charge_end_time3_command": charge_end_time3_command, + "charge_start_time4_command": charge_start_time4_command, + "charge_end_time4_command": charge_end_time4_command, + "discharge_start_time1_command": discharge_start_time1_command, + "discharge_end_time1_command": discharge_end_time1_command, + "discharge_start_time2_command": discharge_start_time2_command, + "discharge_end_time2_command": discharge_end_time2_command, + "discharge_start_time3_command": discharge_start_time3_command, + "discharge_end_time3_command": discharge_end_time3_command, + "discharge_start_time4_command": discharge_start_time4_command, + "discharge_end_time4_command": discharge_end_time4_command} + result.append(meta_result) + + resp.text = json.dumps(result) + + @staticmethod + @user_logger + def on_post(req, resp, id_): + """Handles POST requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + new_values = json.loads(raw_json) + + if 'name' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['name'], str) or \ + len(str.strip(new_values['data']['name'])) == 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME') + name = str.strip(new_values['data']['name']) + + if 'run_state_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['run_state_point_id'], int) or \ + new_values['data']['run_state_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_RUN_STATE_POINT_ID') + run_state_point_id = new_values['data']['run_state_point_id'] + + if 'capacity' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['capacity'], float) or + isinstance(new_values['data']['capacity'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CAPACITY') + capacity = float(new_values['data']['capacity']) + + if 'charge_start_time1_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time1_point_id'], int) or \ + new_values['data']['charge_start_time1_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME1_POINT_ID') + charge_start_time1_point_id = new_values['data']['charge_start_time1_point_id'] + + if 'charge_end_time1_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time1_point_id'], int) or \ + new_values['data']['charge_end_time1_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME1_POINT_ID') + charge_end_time1_point_id = new_values['data']['charge_end_time1_point_id'] + + if 'charge_start_time2_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time2_point_id'], int) or \ + new_values['data']['charge_start_time2_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME2_POINT_ID') + charge_start_time2_point_id = new_values['data']['charge_start_time2_point_id'] + + if 'charge_end_time2_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time2_point_id'], int) or \ + new_values['data']['charge_end_time2_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME2_POINT_ID') + charge_end_time2_point_id = new_values['data']['charge_end_time2_point_id'] + + if 'charge_start_time3_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time3_point_id'], int) or \ + new_values['data']['charge_start_time3_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME3_POINT_ID') + charge_start_time3_point_id = new_values['data']['charge_start_time3_point_id'] + + if 'charge_end_time3_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time3_point_id'], int) or \ + new_values['data']['charge_end_time3_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME3_POINT_ID') + charge_end_time3_point_id = new_values['data']['charge_end_time3_point_id'] + + if 'charge_start_time4_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time4_point_id'], int) or \ + new_values['data']['charge_start_time4_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME4_POINT_ID') + charge_start_time4_point_id = new_values['data']['charge_start_time4_point_id'] + + if 'charge_end_time4_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time4_point_id'], int) or \ + new_values['data']['charge_end_time4_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME4_POINT_ID') + charge_end_time4_point_id = new_values['data']['charge_end_time4_point_id'] + + if 'discharge_start_time1_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time1_point_id'], int) or \ + new_values['data']['discharge_start_time1_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME1_POINT_ID') + discharge_start_time1_point_id = new_values['data']['discharge_start_time1_point_id'] + + if 'discharge_end_time1_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time1_point_id'], int) or \ + new_values['data']['discharge_end_time1_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME1_POINT_ID') + discharge_end_time1_point_id = new_values['data']['discharge_end_time1_point_id'] + + if 'discharge_start_time2_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time2_point_id'], int) or \ + new_values['data']['discharge_start_time2_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME2_POINT_ID') + discharge_start_time2_point_id = new_values['data']['discharge_start_time2_point_id'] + + if 'discharge_end_time2_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time2_point_id'], int) or \ + new_values['data']['discharge_end_time2_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME2_POINT_ID') + discharge_end_time2_point_id = new_values['data']['discharge_end_time2_point_id'] + + if 'discharge_start_time3_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time3_point_id'], int) or \ + new_values['data']['discharge_start_time3_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME3_POINT_ID') + discharge_start_time3_point_id = new_values['data']['discharge_start_time3_point_id'] + + if 'discharge_end_time3_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time3_point_id'], int) or \ + new_values['data']['discharge_end_time3_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME3_POINT_ID') + discharge_end_time3_point_id = new_values['data']['discharge_end_time3_point_id'] + + if 'discharge_start_time4_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time4_point_id'], int) or \ + new_values['data']['discharge_start_time4_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME4_POINT_ID') + discharge_start_time4_point_id = new_values['data']['discharge_start_time4_point_id'] + + if 'discharge_end_time4_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time4_point_id'], int) or \ + new_values['data']['discharge_end_time4_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME4_POINT_ID') + discharge_end_time4_point_id = new_values['data']['discharge_end_time4_point_id'] + + if 'charge_start_time1_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time1_command_id'], int) or \ + new_values['data']['charge_start_time1_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME1_POINT_ID') + charge_start_time1_command_id = new_values['data']['charge_start_time1_command_id'] + + if 'charge_end_time1_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time1_command_id'], int) or \ + new_values['data']['charge_end_time1_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME1_POINT_ID') + charge_end_time1_command_id = new_values['data']['charge_end_time1_command_id'] + + if 'charge_start_time2_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time2_command_id'], int) or \ + new_values['data']['charge_start_time2_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME2_POINT_ID') + charge_start_time2_command_id = new_values['data']['charge_start_time2_command_id'] + + if 'charge_end_time2_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time2_command_id'], int) or \ + new_values['data']['charge_end_time2_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME2_POINT_ID') + charge_end_time2_command_id = new_values['data']['charge_end_time2_command_id'] + + if 'charge_start_time3_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time3_command_id'], int) or \ + new_values['data']['charge_start_time3_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME3_POINT_ID') + charge_start_time3_command_id = new_values['data']['charge_start_time3_command_id'] + + if 'charge_end_time3_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time3_command_id'], int) or \ + new_values['data']['charge_end_time3_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME3_POINT_ID') + charge_end_time3_command_id = new_values['data']['charge_end_time3_command_id'] + + if 'charge_start_time4_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time4_command_id'], int) or \ + new_values['data']['charge_start_time4_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME4_POINT_ID') + charge_start_time4_command_id = new_values['data']['charge_start_time4_command_id'] + + if 'charge_end_time4_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time4_command_id'], int) or \ + new_values['data']['charge_end_time4_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME4_POINT_ID') + charge_end_time4_command_id = new_values['data']['charge_end_time4_command_id'] + + if 'discharge_start_time1_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time1_command_id'], int) or \ + new_values['data']['discharge_start_time1_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME1_POINT_ID') + discharge_start_time1_command_id = new_values['data']['discharge_start_time1_command_id'] + + if 'discharge_end_time1_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time1_command_id'], int) or \ + new_values['data']['discharge_end_time1_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME1_POINT_ID') + discharge_end_time1_command_id = new_values['data']['discharge_end_time1_command_id'] + + if 'discharge_start_time2_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time2_command_id'], int) or \ + new_values['data']['discharge_start_time2_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME2_POINT_ID') + discharge_start_time2_command_id = new_values['data']['discharge_start_time2_command_id'] + + if 'discharge_end_time2_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time2_command_id'], int) or \ + new_values['data']['discharge_end_time2_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME2_POINT_ID') + discharge_end_time2_command_id = new_values['data']['discharge_end_time2_command_id'] + + if 'discharge_start_time3_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time3_command_id'], int) or \ + new_values['data']['discharge_start_time3_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME3_POINT_ID') + discharge_start_time3_command_id = new_values['data']['discharge_start_time3_command_id'] + + if 'discharge_end_time3_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time3_command_id'], int) or \ + new_values['data']['discharge_end_time3_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME3_POINT_ID') + discharge_end_time3_command_id = new_values['data']['discharge_end_time3_command_id'] + + if 'discharge_start_time4_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time4_command_id'], int) or \ + new_values['data']['discharge_start_time4_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME4_POINT_ID') + discharge_start_time4_command_id = new_values['data']['discharge_start_time4_command_id'] + + if 'discharge_end_time4_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time4_command_id'], int) or \ + new_values['data']['discharge_end_time4_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME4_POINT_ID') + discharge_end_time4_command_id = new_values['data']['discharge_end_time4_command_id'] + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", + (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_power_conversion_systems " + " WHERE energy_storage_power_station_id = %s AND name = %s ", + (id_, name,)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE') + + add_values = (" INSERT INTO tbl_energy_storage_power_stations_power_conversion_systems " + " (name, uuid, energy_storage_power_station_id, run_state_point_id, capacity, " + " charge_start_time1_point_id, charge_end_time1_point_id, " + " charge_start_time2_point_id, charge_end_time2_point_id, " + " charge_start_time3_point_id, charge_end_time3_point_id, " + " charge_start_time4_point_id, charge_end_time4_point_id, " + " discharge_start_time1_point_id, discharge_end_time1_point_id, " + " discharge_start_time2_point_id, discharge_end_time2_point_id, " + " discharge_start_time3_point_id, discharge_end_time3_point_id, " + " discharge_start_time4_point_id, discharge_end_time4_point_id, " + " charge_start_time1_command_id, charge_end_time1_command_id, " + " charge_start_time2_command_id, charge_end_time2_command_id, " + " charge_start_time3_command_id, charge_end_time3_command_id, " + " charge_start_time4_command_id, charge_end_time4_command_id, " + " discharge_start_time1_command_id, discharge_end_time1_command_id, " + " discharge_start_time2_command_id, discharge_end_time2_command_id, " + " discharge_start_time3_command_id, discharge_end_time3_command_id, " + " discharge_start_time4_command_id, discharge_end_time4_command_id) " + " VALUES (%s, %s, %s, %s, %s, " + " %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, " + " %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) ") + cursor.execute(add_values, (name, + str(uuid.uuid4()), + id_, + run_state_point_id, + capacity, + charge_start_time1_point_id, + charge_end_time1_point_id, + charge_start_time2_point_id, + charge_end_time2_point_id, + charge_start_time3_point_id, + charge_end_time3_point_id, + charge_start_time4_point_id, + charge_end_time4_point_id, + discharge_start_time1_point_id, + discharge_end_time1_point_id, + discharge_start_time2_point_id, + discharge_end_time2_point_id, + discharge_start_time3_point_id, + discharge_end_time3_point_id, + discharge_start_time4_point_id, + discharge_end_time4_point_id, + charge_start_time1_command_id, + charge_end_time1_command_id, + charge_start_time2_command_id, + charge_end_time2_command_id, + charge_start_time3_command_id, + charge_end_time3_command_id, + charge_start_time4_command_id, + charge_end_time4_command_id, + discharge_start_time1_command_id, + discharge_end_time1_command_id, + discharge_start_time2_command_id, + discharge_end_time2_command_id, + discharge_start_time3_command_id, + discharge_end_time3_command_id, + discharge_start_time4_command_id, + discharge_end_time4_command_id + )) + new_id = cursor.lastrowid + cnx.commit() + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_201 + resp.location = '/energystoragepowerstationpowerconversionsystems/' + str(new_id) + + +class EnergyStoragePowerStationPowerconversionsystemItem: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_, pid): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_, pid): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not pid.isdigit() or int(pid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + # query energy storage power station dict + query = (" SELECT id, name, uuid " + " FROM tbl_energy_storage_power_stations ") + cursor.execute(query) + rows_energystoragepowerstations = cursor.fetchall() + + energy_storage_power_station_dict = dict() + if rows_energystoragepowerstations is not None and len(rows_energystoragepowerstations) > 0: + for row in rows_energystoragepowerstations: + energy_storage_power_station_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query meter dict + query = (" SELECT id, name, uuid " + " FROM tbl_meters ") + cursor.execute(query) + rows_meters = cursor.fetchall() + + meter_dict = dict() + if rows_meters is not None and len(rows_meters) > 0: + for row in rows_meters: + meter_dict[row[0]] = {"id": row[0], + "name": row[1], + "uuid": row[2]} + # query point dict + query = (" SELECT id, name " + " FROM tbl_points ") + cursor.execute(query) + rows_points = cursor.fetchall() + + point_dict = dict() + if rows_points is not None and len(rows_points) > 0: + for row in rows_points: + point_dict[row[0]] = {"id": row[0], + "name": row[1]} + + # query command dict + query = (" SELECT id, name " + " FROM tbl_commands ") + cursor.execute(query) + rows_commands = cursor.fetchall() + + command_dict = dict() + if rows_commands is not None and len(rows_commands) > 0: + for row in rows_commands: + command_dict[row[0]] = {"id": row[0], + "name": row[1]} + + query = (" SELECT id, name, uuid, energy_storage_power_station_id, run_state_point_id, capacity, " + " charge_start_time1_point_id, charge_end_time1_point_id, " + " charge_start_time2_point_id, charge_end_time2_point_id, " + " charge_start_time3_point_id, charge_end_time3_point_id, " + " charge_start_time4_point_id, charge_end_time4_point_id, " + " discharge_start_time1_point_id, discharge_end_time1_point_id, " + " discharge_start_time2_point_id, discharge_end_time2_point_id, " + " discharge_start_time3_point_id, discharge_end_time3_point_id, " + " discharge_start_time4_point_id, discharge_end_time4_point_id, " + " charge_start_time1_command_id, charge_end_time1_command_id, " + " charge_start_time2_command_id, charge_end_time2_command_id, " + " charge_start_time3_command_id, charge_end_time3_command_id, " + " charge_start_time4_command_id, charge_end_time4_command_id, " + " discharge_start_time1_command_id, discharge_end_time1_command_id, " + " discharge_start_time2_command_id, discharge_end_time2_command_id, " + " discharge_start_time3_command_id, discharge_end_time3_command_id, " + " discharge_start_time4_command_id, discharge_end_time4_command_id " + " FROM tbl_energy_storage_power_stations_power_conversion_systems " + " WHERE id = %s ") + cursor.execute(query, (pid,)) + row = cursor.fetchone() + cursor.close() + cnx.close() + + if row is None: + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND') + else: + energy_storage_power_station = energy_storage_power_station_dict.get(row[3]) + run_state_point = point_dict.get(row[4]) + charge_start_time1_point = point_dict.get(row[6]) + charge_end_time1_point = point_dict.get(row[7]) + charge_start_time2_point = point_dict.get(row[8]) + charge_end_time2_point = point_dict.get(row[9]) + charge_start_time3_point = point_dict.get(row[10]) + charge_end_time3_point = point_dict.get(row[11]) + charge_start_time4_point = point_dict.get(row[12]) + charge_end_time4_point = point_dict.get(row[13]) + discharge_start_time1_point = point_dict.get(row[14]) + discharge_end_time1_point = point_dict.get(row[15]) + discharge_start_time2_point = point_dict.get(row[16]) + discharge_end_time2_point = point_dict.get(row[17]) + discharge_start_time3_point = point_dict.get(row[18]) + discharge_end_time3_point = point_dict.get(row[19]) + discharge_start_time4_point = point_dict.get(row[20]) + discharge_end_time4_point = point_dict.get(row[21]) + charge_start_time1_command = command_dict.get(row[22]) + charge_end_time1_command = command_dict.get(row[23]) + charge_start_time2_command = command_dict.get(row[24]) + charge_end_time2_command = command_dict.get(row[25]) + charge_start_time3_command = command_dict.get(row[26]) + charge_end_time3_command = command_dict.get(row[27]) + charge_start_time4_command = command_dict.get(row[28]) + charge_end_time4_command = command_dict.get(row[29]) + discharge_start_time1_command = command_dict.get(row[30]) + discharge_end_time1_command = command_dict.get(row[31]) + discharge_start_time2_command = command_dict.get(row[32]) + discharge_end_time2_command = command_dict.get(row[33]) + discharge_start_time3_command = command_dict.get(row[34]) + discharge_end_time3_command = command_dict.get(row[35]) + discharge_start_time4_command = command_dict.get(row[36]) + discharge_end_time4_command = command_dict.get(row[37]) + meta_result = {"id": row[0], + "name": row[1], + "uuid": row[2], + "energy_storage_power_station": energy_storage_power_station, + "run_state_point": run_state_point, + "capacity": row[5], + "charge_start_time1_point": charge_start_time1_point, + "charge_end_time1_point": charge_end_time1_point, + "charge_start_time2_point": charge_start_time2_point, + "charge_end_time2_point": charge_end_time2_point, + "charge_start_time3_point": charge_start_time3_point, + "charge_end_time3_point": charge_end_time3_point, + "charge_start_time4_point": charge_start_time4_point, + "charge_end_time4_point": charge_end_time4_point, + "discharge_start_time1_point": discharge_start_time1_point, + "discharge_end_time1_point": discharge_end_time1_point, + "discharge_start_time2_point": discharge_start_time2_point, + "discharge_end_time2_point": discharge_end_time2_point, + "discharge_start_time3_point": discharge_start_time3_point, + "discharge_end_time3_point": discharge_end_time3_point, + "discharge_start_time4_point": discharge_start_time4_point, + "discharge_end_time4_point": discharge_end_time4_point, + "charge_start_time1_command": charge_start_time1_command, + "charge_end_time1_command": charge_end_time1_command, + "charge_start_time2_command": charge_start_time2_command, + "charge_end_time2_command": charge_end_time2_command, + "charge_start_time3_command": charge_start_time3_command, + "charge_end_time3_command": charge_end_time3_command, + "charge_start_time4_command": charge_start_time4_command, + "charge_end_time4_command": charge_end_time4_command, + "discharge_start_time1_command": discharge_start_time1_command, + "discharge_end_time1_command": discharge_end_time1_command, + "discharge_start_time2_command": discharge_start_time2_command, + "discharge_end_time2_command": discharge_end_time2_command, + "discharge_start_time3_command": discharge_start_time3_command, + "discharge_end_time3_command": discharge_end_time3_command, + "discharge_start_time4_command": discharge_start_time4_command, + "discharge_end_time4_command": discharge_end_time4_command} + + resp.text = json.dumps(meta_result) + + @staticmethod + @user_logger + def on_delete(req, resp, id_, pid): + admin_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not pid.isdigit() or int(pid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_power_conversion_systems " + " WHERE id = %s ", (pid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND') + + cursor.execute(" DELETE FROM tbl_energy_storage_power_stations_power_conversion_systems " + " WHERE id = %s ", (pid,)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_204 + + @staticmethod + @user_logger + def on_put(req, resp, id_, pid): + """Handles PUT requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + if not pid.isdigit() or int(pid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_ID') + + new_values = json.loads(raw_json) + + if 'name' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['name'], str) or \ + len(str.strip(new_values['data']['name'])) == 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NAME') + name = str.strip(new_values['data']['name']) + + if 'run_state_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['run_state_point_id'], int) or \ + new_values['data']['run_state_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_RUN_STATE_POINT_ID') + run_state_point_id = new_values['data']['run_state_point_id'] + + if 'capacity' not in new_values['data'].keys() or \ + not (isinstance(new_values['data']['capacity'], float) or + isinstance(new_values['data']['capacity'], int)): + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CAPACITY') + capacity = float(new_values['data']['capacity']) + + if 'charge_start_time1_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time1_point_id'], int) or \ + new_values['data']['charge_start_time1_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME1_COMMAND_ID') + charge_start_time1_point_id = new_values['data']['charge_start_time1_point_id'] + + if 'charge_end_time1_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time1_point_id'], int) or \ + new_values['data']['charge_end_time1_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME1_COMMAND_ID') + charge_end_time1_point_id = new_values['data']['charge_end_time1_point_id'] + + if 'charge_start_time2_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time2_point_id'], int) or \ + new_values['data']['charge_start_time2_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME2_COMMAND_ID') + charge_start_time2_point_id = new_values['data']['charge_start_time2_point_id'] + + if 'charge_end_time2_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time2_point_id'], int) or \ + new_values['data']['charge_end_time2_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME2_COMMAND_ID') + charge_end_time2_point_id = new_values['data']['charge_end_time2_point_id'] + + if 'charge_start_time3_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time3_point_id'], int) or \ + new_values['data']['charge_start_time3_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME3_COMMAND_ID') + charge_start_time3_point_id = new_values['data']['charge_start_time3_point_id'] + + if 'charge_end_time3_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time3_point_id'], int) or \ + new_values['data']['charge_end_time3_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME3_COMMAND_ID') + charge_end_time3_point_id = new_values['data']['charge_end_time3_point_id'] + + if 'charge_start_time4_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time4_point_id'], int) or \ + new_values['data']['charge_start_time4_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME4_COMMAND_ID') + charge_start_time4_point_id = new_values['data']['charge_start_time4_point_id'] + + if 'charge_end_time4_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time4_point_id'], int) or \ + new_values['data']['charge_end_time4_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME4_COMMAND_ID') + charge_end_time4_point_id = new_values['data']['charge_end_time4_point_id'] + + if 'discharge_start_time1_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time1_point_id'], int) or \ + new_values['data']['discharge_start_time1_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME1_COMMAND_ID') + discharge_start_time1_point_id = new_values['data']['discharge_start_time1_point_id'] + + if 'discharge_end_time1_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time1_point_id'], int) or \ + new_values['data']['discharge_end_time1_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME1_COMMAND_ID') + discharge_end_time1_point_id = new_values['data']['discharge_end_time1_point_id'] + + if 'discharge_start_time2_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time2_point_id'], int) or \ + new_values['data']['discharge_start_time2_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME2_COMMAND_ID') + discharge_start_time2_point_id = new_values['data']['discharge_start_time2_point_id'] + + if 'discharge_end_time2_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time2_point_id'], int) or \ + new_values['data']['discharge_end_time2_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME2_COMMAND_ID') + discharge_end_time2_point_id = new_values['data']['discharge_end_time2_point_id'] + + if 'discharge_start_time3_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time3_point_id'], int) or \ + new_values['data']['discharge_start_time3_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME3_COMMAND_ID') + discharge_start_time3_point_id = new_values['data']['discharge_start_time3_point_id'] + + if 'discharge_end_time3_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time3_point_id'], int) or \ + new_values['data']['discharge_end_time3_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME3_COMMAND_ID') + discharge_end_time3_point_id = new_values['data']['discharge_end_time3_point_id'] + + if 'discharge_start_time4_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time4_point_id'], int) or \ + new_values['data']['discharge_start_time4_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME4_COMMAND_ID') + discharge_start_time4_point_id = new_values['data']['discharge_start_time4_point_id'] + + if 'discharge_end_time4_point_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time4_point_id'], int) or \ + new_values['data']['discharge_end_time4_point_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME4_COMMAND_ID') + discharge_end_time4_point_id = new_values['data']['discharge_end_time4_point_id'] + + if 'charge_start_time1_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time1_command_id'], int) or \ + new_values['data']['charge_start_time1_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME1_POINT_ID') + charge_start_time1_command_id = new_values['data']['charge_start_time1_command_id'] + + if 'charge_end_time1_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time1_command_id'], int) or \ + new_values['data']['charge_end_time1_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME1_POINT_ID') + charge_end_time1_command_id = new_values['data']['charge_end_time1_command_id'] + + if 'charge_start_time2_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time2_command_id'], int) or \ + new_values['data']['charge_start_time2_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME2_POINT_ID') + charge_start_time2_command_id = new_values['data']['charge_start_time2_command_id'] + + if 'charge_end_time2_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time2_command_id'], int) or \ + new_values['data']['charge_end_time2_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME2_POINT_ID') + charge_end_time2_command_id = new_values['data']['charge_end_time2_command_id'] + + if 'charge_start_time3_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time3_command_id'], int) or \ + new_values['data']['charge_start_time3_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME3_POINT_ID') + charge_start_time3_command_id = new_values['data']['charge_start_time3_command_id'] + + if 'charge_end_time3_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time3_command_id'], int) or \ + new_values['data']['charge_end_time3_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME3_POINT_ID') + charge_end_time3_command_id = new_values['data']['charge_end_time3_command_id'] + + if 'charge_start_time4_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_start_time4_command_id'], int) or \ + new_values['data']['charge_start_time4_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_START_TIME4_POINT_ID') + charge_start_time4_command_id = new_values['data']['charge_start_time4_command_id'] + + if 'charge_end_time4_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['charge_end_time4_command_id'], int) or \ + new_values['data']['charge_end_time4_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_CHARGE_END_TIME4_POINT_ID') + charge_end_time4_command_id = new_values['data']['charge_end_time4_command_id'] + + if 'discharge_start_time1_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time1_command_id'], int) or \ + new_values['data']['discharge_start_time1_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME1_POINT_ID') + discharge_start_time1_command_id = new_values['data']['discharge_start_time1_command_id'] + + if 'discharge_end_time1_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time1_command_id'], int) or \ + new_values['data']['discharge_end_time1_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME1_POINT_ID') + discharge_end_time1_command_id = new_values['data']['discharge_end_time1_command_id'] + + if 'discharge_start_time2_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time2_command_id'], int) or \ + new_values['data']['discharge_start_time2_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME2_POINT_ID') + discharge_start_time2_command_id = new_values['data']['discharge_start_time2_command_id'] + + if 'discharge_end_time2_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time2_command_id'], int) or \ + new_values['data']['discharge_end_time2_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME2_POINT_ID') + discharge_end_time2_command_id = new_values['data']['discharge_end_time2_command_id'] + + if 'discharge_start_time3_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time3_command_id'], int) or \ + new_values['data']['discharge_start_time3_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME3_POINT_ID') + discharge_start_time3_command_id = new_values['data']['discharge_start_time3_command_id'] + + if 'discharge_end_time3_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time3_command_id'], int) or \ + new_values['data']['discharge_end_time3_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME3_POINT_ID') + discharge_end_time3_command_id = new_values['data']['discharge_end_time3_command_id'] + + if 'discharge_start_time4_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_start_time4_command_id'], int) or \ + new_values['data']['discharge_start_time4_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_START_TIME4_POINT_ID') + discharge_start_time4_command_id = new_values['data']['discharge_start_time4_command_id'] + + if 'discharge_end_time4_command_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['discharge_end_time4_command_id'], int) or \ + new_values['data']['discharge_end_time4_command_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_DISCHARGE_END_TIME4_POINT_ID') + discharge_end_time4_command_id = new_values['data']['discharge_end_time4_command_id'] + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_power_conversion_systems " + " WHERE id = %s ", (pid,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_POWER_CONVERSION_SYSTEM_NOT_FOUND') + + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations_power_conversion_systems " + " WHERE energy_storage_power_station_id = %s AND name = %s AND id != %s ", + (id_, name, pid)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.ENERGY_STORAGE_POWER_STATION_PCS_NAME_IS_ALREADY_IN_USE') + + update_row = (" UPDATE tbl_energy_storage_power_stations_power_conversion_systems " + " SET name = %s, energy_storage_power_station_id = %s, run_state_point_id = %s, capacity = %s, " + " charge_start_time1_point_id = %s, charge_end_time1_point_id = %s, " + " charge_start_time2_point_id = %s, charge_end_time2_point_id = %s, " + " charge_start_time3_point_id = %s, charge_end_time3_point_id = %s, " + " charge_start_time4_point_id = %s, charge_end_time4_point_id = %s, " + " discharge_start_time1_point_id = %s, discharge_end_time1_point_id = %s, " + " discharge_start_time2_point_id = %s, discharge_end_time2_point_id = %s, " + " discharge_start_time3_point_id = %s, discharge_end_time3_point_id = %s, " + " discharge_start_time4_point_id = %s, discharge_end_time4_point_id = %s, " + " charge_start_time1_command_id = %s, charge_end_time1_command_id = %s, " + " charge_start_time2_command_id = %s, charge_end_time2_command_id = %s, " + " charge_start_time3_command_id = %s, charge_end_time3_command_id = %s, " + " charge_start_time4_command_id = %s, charge_end_time4_command_id = %s, " + " discharge_start_time1_command_id = %s, discharge_end_time1_command_id = %s, " + " discharge_start_time2_command_id = %s, discharge_end_time2_command_id = %s, " + " discharge_start_time3_command_id = %s, discharge_end_time3_command_id = %s, " + " discharge_start_time4_command_id = %s, discharge_end_time4_command_id = %s " + " WHERE id = %s ") + cursor.execute(update_row, (name, + id_, + run_state_point_id, + capacity, + charge_start_time1_point_id, + charge_end_time1_point_id, + charge_start_time2_point_id, + charge_end_time2_point_id, + charge_start_time3_point_id, + charge_end_time3_point_id, + charge_start_time4_point_id, + charge_end_time4_point_id, + discharge_start_time1_point_id, + discharge_end_time1_point_id, + discharge_start_time2_point_id, + discharge_end_time2_point_id, + discharge_start_time3_point_id, + discharge_end_time3_point_id, + discharge_start_time4_point_id, + discharge_end_time4_point_id, + charge_start_time1_command_id, + charge_end_time1_command_id, + charge_start_time2_command_id, + charge_end_time2_command_id, + charge_start_time3_command_id, + charge_end_time3_command_id, + charge_start_time4_command_id, + charge_end_time4_command_id, + discharge_start_time1_command_id, + discharge_end_time1_command_id, + discharge_start_time2_command_id, + discharge_end_time2_command_id, + discharge_start_time3_command_id, + discharge_end_time3_command_id, + discharge_start_time4_command_id, + discharge_end_time4_command_id, + pid)) + cnx.commit() + + cursor.close() + cnx.close() + + resp.status = falcon.HTTP_200 + + +class EnergyStoragePowerStationUserCollection: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp, id_): + access_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + query = (" SELECT u.id, u.name, u.uuid " + " FROM tbl_energy_storage_power_stations m, tbl_energy_storage_power_stations_users mu, " + + config.myems_user_db['database'] + ".tbl_users u " + " WHERE mu.energy_storage_power_station_id = m.id AND u.id = mu.user_id AND m.id = %s " + " ORDER BY u.id ") + cursor.execute(query, (id_,)) + rows = cursor.fetchall() + result = list() + if rows is not None and len(rows) > 0: + for row in rows: + meta_result = {"id": row[0], "name": row[1], "uuid": row[2]} + result.append(meta_result) + + cursor.close() + cnx.close() + resp.text = json.dumps(result) + + @staticmethod + @user_logger + def on_post(req, resp, id_): + """Handles POST requests""" + admin_control(req) + try: + raw_json = req.stream.read().decode('utf-8') + except Exception as ex: + raise falcon.HTTPError(status=falcon.HTTP_400, + title='API.BAD_REQUEST', + description='API.FAILED_TO_READ_REQUEST_STREAM') + + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + new_values = json.loads(raw_json) + if 'user_id' not in new_values['data'].keys() or \ + not isinstance(new_values['data']['user_id'], int) or \ + new_values['data']['user_id'] <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_USER_ID') + user_id = new_values['data']['user_id'] + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cnx_user = mysql.connector.connect(**config.myems_user_db) + cursor_user = cnx_user.cursor() + cursor_user.execute(" SELECT name" + " FROM tbl_users " + " WHERE id = %s ", (user_id,)) + if cursor_user.fetchone() is None: + cursor_user.close() + cnx_user.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.USER_NOT_FOUND') + query = (" SELECT id " + " FROM tbl_energy_storage_power_stations_users " + " WHERE energy_storage_power_station_id = %s AND user_id = %s") + cursor.execute(query, (id_, user_id,)) + if cursor.fetchone() is not None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.ERROR', + description='API.ENERGY_STORAGE_POWER_STATION_USER_RELATION_EXISTS') + add_row = (" INSERT INTO tbl_energy_storage_power_stations_users (energy_storage_power_station_id, user_id) " + " VALUES (%s, %s) ") + cursor.execute(add_row, (id_, user_id,)) + cnx.commit() + cursor.close() + cnx.close() + cursor_user.close() + cnx_user.close() + + resp.status = falcon.HTTP_201 + resp.location = '/energystoragepowerstations/' + str(id_) + '/users/' + str(user_id) + + +class EnergyStoragePowerStationUserItem: + @staticmethod + def __init__(): + """Initializes Class""" + pass + + @staticmethod + def on_options(req, resp, id_, uid): + resp.status = falcon.HTTP_200 + + @staticmethod + @user_logger + def on_delete(req, resp, id_, uid): + # todo Verify if the user is bound when deleting it + admin_control(req) + if not id_.isdigit() or int(id_) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_ENERGY_STORAGE_POWER_STATION_ID') + + if not uid.isdigit() or int(uid) <= 0: + raise falcon.HTTPError(status=falcon.HTTP_400, title='API.BAD_REQUEST', + description='API.INVALID_USER_ID') + + cnx = mysql.connector.connect(**config.myems_system_db) + cursor = cnx.cursor() + cursor.execute(" SELECT name " + " FROM tbl_energy_storage_power_stations " + " WHERE id = %s ", (id_,)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_NOT_FOUND') + + cnx_user = mysql.connector.connect(**config.myems_user_db) + cursor_user = cnx_user.cursor() + cursor_user.execute(" SELECT name FROM tbl_users WHERE id = %s ", (uid,)) + if cursor_user.fetchone() is None: + cursor_user.close() + cnx_user.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.USER_NOT_FOUND') + + cursor.execute(" SELECT id " + " FROM tbl_energy_storage_power_stations_users " + " WHERE energy_storage_power_station_id = %s AND user_id = %s ", (id_, uid)) + if cursor.fetchone() is None: + cursor.close() + cnx.close() + raise falcon.HTTPError(status=falcon.HTTP_404, title='API.NOT_FOUND', + description='API.ENERGY_STORAGE_POWER_STATION_USER_RELATION_NOT_FOUND') + + cursor.execute(" DELETE FROM tbl_energy_storage_power_stations_users " + " WHERE energy_storage_power_station_id = %s AND user_id = %s ", (id_, uid)) + cnx.commit() + + cursor.close() + cnx.close() + cursor_user.close() + cnx_user.close() + + resp.status = falcon.HTTP_204