Добрый день.
Можно ли добавить показания при помощи нового API?
Ситуация: Данные по Т+,T-, Тнв, Твнутр итд. собираются в других системах.
Хотелось бы объединить данные собранные ЛЭРС УЧЕТ и например данные по температуре внутри помещения.
Такая же ситуация при мониторинге АИТП, часть можно считать с контроллера при помощи ЛЭРС, часть собираем другими системами.
Если я правильно понял, вам необходимо импортировать данные только по отдельным параметрам на определенные метки времени.
Вы можете это сделать при помощи запроса:
PUT ?/api?/v1?/Data?/MeasurePoints?/{id} Сохраняет данные по точке учёта (потребление и интеграторы). После сохранения запускается пересчёт данных и диагностика.
Не совсем. Сохранять надо не потребление и интеграторы, а текущие, температура, давление итп. Пересчитывать ничего пока не надо.
ааааа Похоже сообразил
Надо взять PUT /api/v1/Data/MeasurePoints/{id}/Consumption/CurrentArchive
и в теле написать
что то в виде SaveConsumptionRequestParameters
Я правильно понял, что это потом сохранится?
Для сохранения текущих данных вы можете использовать любой из этих методов.
Да, все верно, если вы сохраните текущие данные при помощи метода PUT /api/v1/Data/MeasurePoints/{id}/Consumption/CurrentArchive, то переданные данные в заполненной структуре SaveConsumptionRequestParameters сохранятся.
Не выходит. Сделал ТУ :
{“id”:4294,“title”:“В - АТП”,“fullTitle”:“В - АТП”,“parentTitle”:“В 55”,“address”:“В55”,“type”:“Regular”,“orderNumber”:1,“systemType”:“Control”,“nodeId”:1201,“roomId”:null,“serviceNumber”:104777,“isDoublePipeHotWaterSystem”:false,“isTwoChannels”:true,“resourceKind”:“Water”,“deviceId”:10466,“counterId”:null,“commLinkType”:“None”,“comment”:"",“selectedParamsList”:[“T_in”,“T_out”,“T_delta”,“T_cw”,“T_indoor”,“T_outdoor”,“M_in”,“M_out”,“M_delta”,“Q_in”,“Q_out”,“Q_delta”,“NormalOperationDuration”],“contractHeat”:0,“contractFlow”:0,“contractPin”:6,“contractPout”:4,“contractTin”:0,“contractTout”:0,“currentRatio”:1,“voltageRatio”:1,“state”:“None”,“showCalculatedData”:true,“showBadValues”:true,“calcAndStorage”:{“calculateMissingTotals”:false,“calculateMissingTotalsEstimate”:false,“calculateMissingHourConsumption”:“AveragingCurrents”,“calculateMissingDayConsumption”:“Sum”,“calculateMissingMonthConsumption”:“Sum”,“calculateMissingValues”:true,“calculateMissingHeatValues”:false,“calculatedValuesAveragingMode”:“ArithmeticalMean”,“devicePressureType”:“Gauge”,“useAdvancedTotalsInterpolation”:false,“displayPressureType”:“Default”},“reportingHour”:0,“reportingDay”:1,“reportingHourMode”:“Default”,“isReversibleFlow”:false,“isVirtual”:false,“attributes”:null,“device”:null,“deviceEquipmentModel”:null,“diagDataTypes”:null,“admissionDate”:null,“servicingStatusId”:1,“measuredParameterUnitCollection”:null,“customerId”:null}
Запрос: PUT http://server:port/api/v1/Data/MeasurePoints/{{id}}
Тело: {
“consumption”: {
“dataType”: “Current”,
“pressureType”: “Gauge”,
“consumption”: [
{
“resourceKind”: “Water”,
“isEmpty”: true,
“dateTime”: “2020-11-06T10:19:15.917Z”,
“attributes”: [
“ExternalData”
],
“values”: [
{
“dataParameter”: “T_in”,
“value”: 5,
“isBad”: false,
“isCalc”: false,
“isInterpolated”: false,
“isReset”: true
}
]
}
]
},
“totals”: [],
“unitsOfMeasurement”: [
{
“category”: “Temperature”,
“unit”: “CelsiusDegree”
}
]
}
Ответ: {“errorMessage”:"Необработанная ошибка выполнения запроса PUT /api/v1/Data/MeasurePoints/4294.
- [Lers.Data] System.ComponentModel.InvalidEnumArgumentException: Value does not fall within the expected range.
Стек вызовов:
at Lers.Data.Saving.DataTimeMarkFormatter.FormatStartTimeMark(DateTime dt, DeviceDataType dataType)
at Lers.Data.Saving.DataIntervalMerger.GetUniqueIntervals(IEnumerable`1 intervalList)
at Lers.Data.Saving.DataSaver.SaveMeasurePointArchiveDataAsync(MeasurePointDataForSave measurePointData)
at Lers.Data.Saving.DataSaver.SaveArchiveDataAsync(Boolean overwriteExisting)
at Lers.Data.Request.SaveDataRequestProcessor.Handle(IAccount doer, EntityIdentifier mpId, SaveDataSettings saveSettings, SaveDataRequestParams param)
at lambda_method(Closure , Object )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at…",“errorCode”:100,“data”:null}
Разобрался - вопрос закрыт.
Хорошо, тему закрываю.