Initial commit - Support for Get Hydrometer and Get Fermentation Chamber
This commit is contained in:
384
tests/json/get_fermentation_chamber_response.json
Normal file
384
tests/json/get_fermentation_chamber_response.json
Normal file
@@ -0,0 +1,384 @@
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"serialNumber": "string",
|
||||
"macAddress": "string",
|
||||
"deviceType": "FermentationChamber",
|
||||
"active": true,
|
||||
"disabled": true,
|
||||
"username": "string",
|
||||
"connectionState": "string",
|
||||
"status": "string",
|
||||
"error": "string",
|
||||
"lastActivityTime": "2025-10-09T11:56:29.302Z",
|
||||
"rssi": 0,
|
||||
"firmwareVersion": "string",
|
||||
"isLatestFirmware": true,
|
||||
"activeProfileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"activeProfileStepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"activeProfileSession": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profile": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"public": true,
|
||||
"profileName": "string",
|
||||
"rating": 0,
|
||||
"ratingCount": 0,
|
||||
"ratingScore": 0,
|
||||
"copyCount": 0,
|
||||
"viewCount": 0,
|
||||
"profileTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"order": 0,
|
||||
"controlType": "Target",
|
||||
"endType": "Duration",
|
||||
"durationType": "Start",
|
||||
"operator": "Equals",
|
||||
"length": 0,
|
||||
"temperature": 0,
|
||||
"minTemperature": 0,
|
||||
"maxTemperature": 0,
|
||||
"gravity": 0,
|
||||
"pumpEnabled": true,
|
||||
"pumpUtilisation": 0,
|
||||
"heatingUtilisation": 0,
|
||||
"pidEnabled": true,
|
||||
"sensorDifferential": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"length": 0,
|
||||
"profileStepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileSessions": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profile": "string",
|
||||
"brewZillaId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"fermentationChamberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"hydrometerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"stillId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"temperatureControllerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"startDate": "2025-10-09T11:56:29.302Z",
|
||||
"endDate": "2025-10-09T11:56:29.302Z",
|
||||
"originalGravity": 0,
|
||||
"finalGravity": 0,
|
||||
"yeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"yeast": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"productId": "string",
|
||||
"laboratory": "string",
|
||||
"supplier": "string",
|
||||
"keglandProductCode": "string",
|
||||
"type": "string",
|
||||
"form": "string",
|
||||
"minTemperature": 0,
|
||||
"maxTemperature": 0,
|
||||
"flocculation": "string",
|
||||
"attenuation": 0,
|
||||
"notes": "string",
|
||||
"bestFor": "string",
|
||||
"maxReuse": 0,
|
||||
"addToSecondary": true,
|
||||
"amountType": "Weight",
|
||||
"inventoryAmount": 0,
|
||||
"archived": true,
|
||||
"stockLevel": 0,
|
||||
"globalYeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"isGlobal": true
|
||||
},
|
||||
"sentAlerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"brewZillaId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"fermentationChamberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"hydrometerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"stillId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"temperatureControllerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"startDate": "2025-10-09T11:56:29.302Z",
|
||||
"endDate": "2025-10-09T11:56:29.302Z",
|
||||
"originalGravity": 0,
|
||||
"finalGravity": 0,
|
||||
"yeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"yeast": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"productId": "string",
|
||||
"laboratory": "string",
|
||||
"supplier": "string",
|
||||
"keglandProductCode": "string",
|
||||
"type": "string",
|
||||
"form": "string",
|
||||
"minTemperature": 0,
|
||||
"maxTemperature": 0,
|
||||
"flocculation": "string",
|
||||
"attenuation": 0,
|
||||
"notes": "string",
|
||||
"bestFor": "string",
|
||||
"maxReuse": 0,
|
||||
"addToSecondary": true,
|
||||
"amountType": "Weight",
|
||||
"inventoryAmount": 0,
|
||||
"archived": true,
|
||||
"stockLevel": 0,
|
||||
"globalYeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"isGlobal": true
|
||||
},
|
||||
"sentAlerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
],
|
||||
"estimatedEndDate": "2025-10-09T11:56:29.302Z",
|
||||
"profileLength": 0,
|
||||
"currentProfileTime": 0,
|
||||
"remainingProfileTime": 0
|
||||
},
|
||||
"profileSessions": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profile": "string",
|
||||
"brewZillaId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"fermentationChamberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"hydrometerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"stillId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"temperatureControllerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"startDate": "2025-10-09T11:56:29.302Z",
|
||||
"endDate": "2025-10-09T11:56:29.302Z",
|
||||
"originalGravity": 0,
|
||||
"finalGravity": 0,
|
||||
"yeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"yeast": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"productId": "string",
|
||||
"laboratory": "string",
|
||||
"supplier": "string",
|
||||
"keglandProductCode": "string",
|
||||
"type": "string",
|
||||
"form": "string",
|
||||
"minTemperature": 0,
|
||||
"maxTemperature": 0,
|
||||
"flocculation": "string",
|
||||
"attenuation": 0,
|
||||
"notes": "string",
|
||||
"bestFor": "string",
|
||||
"maxReuse": 0,
|
||||
"addToSecondary": true,
|
||||
"amountType": "Weight",
|
||||
"inventoryAmount": 0,
|
||||
"archived": true,
|
||||
"stockLevel": 0,
|
||||
"globalYeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"isGlobal": true
|
||||
},
|
||||
"sentAlerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:56:29.302Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"betaUpdates": true,
|
||||
"bluetoothEnabled": true,
|
||||
"graphZoomLevel": 0,
|
||||
"temperature": 0,
|
||||
"targetTemperature": 0,
|
||||
"minTargetTemperature": 0,
|
||||
"maxTargetTemperature": 0,
|
||||
"totalRunTime": 0,
|
||||
"coolingEnabled": true,
|
||||
"coolingRunTime": 0,
|
||||
"coolingStarts": 0,
|
||||
"heatingEnabled": true,
|
||||
"heatingRunTime": 0,
|
||||
"heatingStarts": 0,
|
||||
"heatingUtilisation": 0,
|
||||
"highTempAlarm": 0,
|
||||
"lowTempAlarm": 0,
|
||||
"ntcBeta": 0,
|
||||
"ntcRefResistance": 0,
|
||||
"ntcRefTemperature": 0,
|
||||
"pidCycleTime": 0,
|
||||
"pidEnabled": true,
|
||||
"pidProportional": 0,
|
||||
"pidIntegral": 0,
|
||||
"pidDerivative": 0,
|
||||
"sensorDifferential": 0,
|
||||
"sensorTimeout": 0,
|
||||
"showGraph": true,
|
||||
"soundsEnabled": true,
|
||||
"tempUnit": "string",
|
||||
"useInternalSensor": true,
|
||||
"controlDeviceType": "string",
|
||||
"controlDeviceMacAddress": "string",
|
||||
"controlDeviceTemperature": 0,
|
||||
"customerUse": "string",
|
||||
"telemetryFrequency": 14440,
|
||||
"compressorDelay": 10,
|
||||
"modeSwitchDelay": 30,
|
||||
"coolingHysteresis": 10,
|
||||
"heatingHysteresis": 10,
|
||||
"telemetry": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"rowKey": "string",
|
||||
"createdOn": "2025-10-09T11:56:29.302Z",
|
||||
"macAddress": "string",
|
||||
"rssi": 0,
|
||||
"controlDeviceType": "string",
|
||||
"controlDeviceMacAddress": "string",
|
||||
"controlDeviceTemperature": 0,
|
||||
"temperature": 0,
|
||||
"targetTemperature": 0,
|
||||
"minTargetTemperature": 0,
|
||||
"maxTargetTemperature": 0,
|
||||
"totalRunTime": 0,
|
||||
"compressorRunTime": 0,
|
||||
"compressorStarts": 0,
|
||||
"heatingRunTime": 0,
|
||||
"heatingStarts": 0,
|
||||
"auxillaryRunTime": 0,
|
||||
"auxillaryStarts": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profileStepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profileSessionStartDate": "2025-10-09T11:56:29.302Z",
|
||||
"profileSessionTime": 0,
|
||||
"profileStepProgress": 0
|
||||
}
|
||||
],
|
||||
"compressorRunTime": 0,
|
||||
"compressorStarts": 0,
|
||||
"auxillaryRunTime": 0,
|
||||
"auxillaryStarts": 0,
|
||||
"fanEnabled": true,
|
||||
"lightEnabled": "AlwaysOn"
|
||||
}
|
||||
28
tests/json/get_fermentation_chamber_telemetry_response.json
Normal file
28
tests/json/get_fermentation_chamber_telemetry_response.json
Normal file
@@ -0,0 +1,28 @@
|
||||
[
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"rowKey": "string",
|
||||
"createdOn": "2025-10-09T09:29:04.638Z",
|
||||
"macAddress": "string",
|
||||
"rssi": 0,
|
||||
"controlDeviceType": "string",
|
||||
"controlDeviceMacAddress": "string",
|
||||
"controlDeviceTemperature": 0,
|
||||
"temperature": 0,
|
||||
"targetTemperature": 0,
|
||||
"minTargetTemperature": 0,
|
||||
"maxTargetTemperature": 0,
|
||||
"totalRunTime": 0,
|
||||
"compressorRunTime": 0,
|
||||
"compressorStarts": 0,
|
||||
"heatingRunTime": 0,
|
||||
"heatingStarts": 0,
|
||||
"auxillaryRunTime": 0,
|
||||
"auxillaryStarts": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profileStepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profileSessionStartDate": "2025-10-09T09:29:04.638Z",
|
||||
"profileSessionTime": 0,
|
||||
"profileStepProgress": 0
|
||||
}
|
||||
]
|
||||
386
tests/json/get_fermentation_chambers_response.json
Normal file
386
tests/json/get_fermentation_chambers_response.json
Normal file
@@ -0,0 +1,386 @@
|
||||
[
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"serialNumber": "string",
|
||||
"macAddress": "string",
|
||||
"deviceType": "FermentationChamber",
|
||||
"active": true,
|
||||
"disabled": true,
|
||||
"username": "string",
|
||||
"connectionState": "string",
|
||||
"status": "string",
|
||||
"error": "string",
|
||||
"lastActivityTime": "2025-10-09T11:13:05.885Z",
|
||||
"rssi": 0,
|
||||
"firmwareVersion": "string",
|
||||
"isLatestFirmware": true,
|
||||
"activeProfileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"activeProfileStepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"activeProfileSession": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profile": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"public": true,
|
||||
"profileName": "string",
|
||||
"rating": 0,
|
||||
"ratingCount": 0,
|
||||
"ratingScore": 0,
|
||||
"copyCount": 0,
|
||||
"viewCount": 0,
|
||||
"profileTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"order": 0,
|
||||
"controlType": "Target",
|
||||
"endType": "Duration",
|
||||
"durationType": "Start",
|
||||
"operator": "Equals",
|
||||
"length": 0,
|
||||
"temperature": 0,
|
||||
"minTemperature": 0,
|
||||
"maxTemperature": 0,
|
||||
"gravity": 0,
|
||||
"pumpEnabled": true,
|
||||
"pumpUtilisation": 0,
|
||||
"heatingUtilisation": 0,
|
||||
"pidEnabled": true,
|
||||
"sensorDifferential": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"length": 0,
|
||||
"profileStepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileSessions": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profile": "string",
|
||||
"brewZillaId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"fermentationChamberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"hydrometerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"stillId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"temperatureControllerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"startDate": "2025-10-09T11:13:05.885Z",
|
||||
"endDate": "2025-10-09T11:13:05.885Z",
|
||||
"originalGravity": 0,
|
||||
"finalGravity": 0,
|
||||
"yeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"yeast": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"productId": "string",
|
||||
"laboratory": "string",
|
||||
"supplier": "string",
|
||||
"keglandProductCode": "string",
|
||||
"type": "string",
|
||||
"form": "string",
|
||||
"minTemperature": 0,
|
||||
"maxTemperature": 0,
|
||||
"flocculation": "string",
|
||||
"attenuation": 0,
|
||||
"notes": "string",
|
||||
"bestFor": "string",
|
||||
"maxReuse": 0,
|
||||
"addToSecondary": true,
|
||||
"amountType": "Weight",
|
||||
"inventoryAmount": 0,
|
||||
"archived": true,
|
||||
"stockLevel": 0,
|
||||
"globalYeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"isGlobal": true
|
||||
},
|
||||
"sentAlerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"brewZillaId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"fermentationChamberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"hydrometerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"stillId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"temperatureControllerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"startDate": "2025-10-09T11:13:05.885Z",
|
||||
"endDate": "2025-10-09T11:13:05.885Z",
|
||||
"originalGravity": 0,
|
||||
"finalGravity": 0,
|
||||
"yeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"yeast": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"productId": "string",
|
||||
"laboratory": "string",
|
||||
"supplier": "string",
|
||||
"keglandProductCode": "string",
|
||||
"type": "string",
|
||||
"form": "string",
|
||||
"minTemperature": 0,
|
||||
"maxTemperature": 0,
|
||||
"flocculation": "string",
|
||||
"attenuation": 0,
|
||||
"notes": "string",
|
||||
"bestFor": "string",
|
||||
"maxReuse": 0,
|
||||
"addToSecondary": true,
|
||||
"amountType": "Weight",
|
||||
"inventoryAmount": 0,
|
||||
"archived": true,
|
||||
"stockLevel": 0,
|
||||
"globalYeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"isGlobal": true
|
||||
},
|
||||
"sentAlerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
],
|
||||
"estimatedEndDate": "2025-10-09T11:13:05.885Z",
|
||||
"profileLength": 0,
|
||||
"currentProfileTime": 0,
|
||||
"remainingProfileTime": 0
|
||||
},
|
||||
"profileSessions": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profile": "string",
|
||||
"brewZillaId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"fermentationChamberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"hydrometerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"stillId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"temperatureControllerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"startDate": "2025-10-09T11:13:05.885Z",
|
||||
"endDate": "2025-10-09T11:13:05.885Z",
|
||||
"originalGravity": 0,
|
||||
"finalGravity": 0,
|
||||
"yeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"yeast": {
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "string",
|
||||
"productId": "string",
|
||||
"laboratory": "string",
|
||||
"supplier": "string",
|
||||
"keglandProductCode": "string",
|
||||
"type": "string",
|
||||
"form": "string",
|
||||
"minTemperature": 0,
|
||||
"maxTemperature": 0,
|
||||
"flocculation": "string",
|
||||
"attenuation": 0,
|
||||
"notes": "string",
|
||||
"bestFor": "string",
|
||||
"maxReuse": 0,
|
||||
"addToSecondary": true,
|
||||
"amountType": "Weight",
|
||||
"inventoryAmount": 0,
|
||||
"archived": true,
|
||||
"stockLevel": 0,
|
||||
"globalYeastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"isGlobal": true
|
||||
},
|
||||
"sentAlerts": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"deleted": true,
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"createdBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"modifiedOn": "2025-10-09T11:13:05.885Z",
|
||||
"modifiedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"alertText": "string",
|
||||
"trigger": "StepStart",
|
||||
"operator": "Equals",
|
||||
"temperature": 0,
|
||||
"gravity": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"betaUpdates": true,
|
||||
"bluetoothEnabled": true,
|
||||
"graphZoomLevel": 0,
|
||||
"temperature": 0,
|
||||
"targetTemperature": 0,
|
||||
"minTargetTemperature": 0,
|
||||
"maxTargetTemperature": 0,
|
||||
"totalRunTime": 0,
|
||||
"coolingEnabled": true,
|
||||
"coolingRunTime": 0,
|
||||
"coolingStarts": 0,
|
||||
"heatingEnabled": true,
|
||||
"heatingRunTime": 0,
|
||||
"heatingStarts": 0,
|
||||
"heatingUtilisation": 0,
|
||||
"highTempAlarm": 0,
|
||||
"lowTempAlarm": 0,
|
||||
"ntcBeta": 0,
|
||||
"ntcRefResistance": 0,
|
||||
"ntcRefTemperature": 0,
|
||||
"pidCycleTime": 0,
|
||||
"pidEnabled": true,
|
||||
"pidProportional": 0,
|
||||
"pidIntegral": 0,
|
||||
"pidDerivative": 0,
|
||||
"sensorDifferential": 0,
|
||||
"sensorTimeout": 0,
|
||||
"showGraph": true,
|
||||
"soundsEnabled": true,
|
||||
"tempUnit": "string",
|
||||
"useInternalSensor": true,
|
||||
"controlDeviceType": "string",
|
||||
"controlDeviceMacAddress": "string",
|
||||
"controlDeviceTemperature": 0,
|
||||
"customerUse": "string",
|
||||
"telemetryFrequency": 14440,
|
||||
"compressorDelay": 10,
|
||||
"modeSwitchDelay": 30,
|
||||
"coolingHysteresis": 10,
|
||||
"heatingHysteresis": 10,
|
||||
"telemetry": [
|
||||
{
|
||||
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"rowKey": "string",
|
||||
"createdOn": "2025-10-09T11:13:05.885Z",
|
||||
"macAddress": "string",
|
||||
"rssi": 0,
|
||||
"controlDeviceType": "string",
|
||||
"controlDeviceMacAddress": "string",
|
||||
"controlDeviceTemperature": 0,
|
||||
"temperature": 0,
|
||||
"targetTemperature": 0,
|
||||
"minTargetTemperature": 0,
|
||||
"maxTargetTemperature": 0,
|
||||
"totalRunTime": 0,
|
||||
"compressorRunTime": 0,
|
||||
"compressorStarts": 0,
|
||||
"heatingRunTime": 0,
|
||||
"heatingStarts": 0,
|
||||
"auxillaryRunTime": 0,
|
||||
"auxillaryStarts": 0,
|
||||
"profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profileStepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"profileSessionStartDate": "2025-10-09T11:13:05.885Z",
|
||||
"profileSessionTime": 0,
|
||||
"profileStepProgress": 0
|
||||
}
|
||||
],
|
||||
"compressorRunTime": 0,
|
||||
"compressorStarts": 0,
|
||||
"auxillaryRunTime": 0,
|
||||
"auxillaryStarts": 0,
|
||||
"fanEnabled": true,
|
||||
"lightEnabled": "AlwaysOn"
|
||||
}
|
||||
]
|
||||
35
tests/json/get_hydrometer_response.json
Normal file
35
tests/json/get_hydrometer_response.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"telemetry": [
|
||||
{
|
||||
"temperature": 17.5625,
|
||||
"gravity": 1325.07,
|
||||
"gravityVelocity": 0,
|
||||
"battery": 0,
|
||||
"version": "20250319_055542_b3788ba",
|
||||
"id": "68423584-1a35-4341-b67c-78456f4ae9f3",
|
||||
"rowKey": "2516424593326678442",
|
||||
"createdOn": "2025-10-07T12:51:07.3321557+00:00",
|
||||
"macAddress": "ac-15-18-df-84-94",
|
||||
"rssi": -56
|
||||
}
|
||||
],
|
||||
"temperature": 17.5625,
|
||||
"gravity": 1325.07,
|
||||
"gravityVelocity": 0,
|
||||
"battery": 0,
|
||||
"name": "Hegnsgården Yellow",
|
||||
"macAddress": "ac-15-18-df-84-94",
|
||||
"deviceType": "Hydrometer",
|
||||
"active": false,
|
||||
"disabled": false,
|
||||
"lastActivityTime": "2025-10-07T12:51:07.3321557+00:00",
|
||||
"rssi": -56,
|
||||
"firmwareVersion": "20250319_055542_b3788ba",
|
||||
"isLatestFirmware": true,
|
||||
"modifiedOn": "2025-10-07T12:51:07.3603727+00:00",
|
||||
"modifiedBy": "00000000-0000-0000-0000-000000000000",
|
||||
"id": "2aa3b02c-78de-4715-8f5b-61bf7c3d1b62",
|
||||
"deleted": false,
|
||||
"createdOn": "2025-10-07T09:44:01.1515163+00:00",
|
||||
"createdBy": "475ebc33-8e90-4be5-2424-08ddfbe49482"
|
||||
}
|
||||
14
tests/json/get_hydrometer_telemetry_response.json
Normal file
14
tests/json/get_hydrometer_telemetry_response.json
Normal file
@@ -0,0 +1,14 @@
|
||||
[
|
||||
{
|
||||
"temperature": 17.5625,
|
||||
"gravity": 1325.07,
|
||||
"gravityVelocity": 0,
|
||||
"battery": 0,
|
||||
"version": "20250319_055542_b3788ba",
|
||||
"id": "50d5885c-b637-4343-bb47-cc76e9f3c0c1",
|
||||
"rowKey": "2516424593326678442",
|
||||
"createdOn": "2025-10-07T12:51:07.3321557+00:00",
|
||||
"macAddress": "ac-15-18-df-84-94",
|
||||
"rssi": -56
|
||||
}
|
||||
]
|
||||
37
tests/json/get_hydrometers_response.json
Normal file
37
tests/json/get_hydrometers_response.json
Normal file
@@ -0,0 +1,37 @@
|
||||
[
|
||||
{
|
||||
"telemetry": [
|
||||
{
|
||||
"temperature": 17.5625,
|
||||
"gravity": 1325.07,
|
||||
"gravityVelocity": 0,
|
||||
"battery": 0,
|
||||
"version": "20250319_055542_b3788ba",
|
||||
"id": "55462886-4400-4608-b283-3ce4426dafd3",
|
||||
"rowKey": "2516424593326678442",
|
||||
"createdOn": "2025-10-07T12:51:07.3321557+00:00",
|
||||
"macAddress": "ac-15-18-df-84-94",
|
||||
"rssi": -56
|
||||
}
|
||||
],
|
||||
"temperature": 17.5625,
|
||||
"gravity": 1325.07,
|
||||
"gravityVelocity": 0,
|
||||
"battery": 0,
|
||||
"name": "Hegnsgården Yellow",
|
||||
"macAddress": "ac-15-18-df-84-94",
|
||||
"deviceType": "Hydrometer",
|
||||
"active": false,
|
||||
"disabled": false,
|
||||
"lastActivityTime": "2025-10-07T12:51:07.3321557+00:00",
|
||||
"rssi": -56,
|
||||
"firmwareVersion": "20250319_055542_b3788ba",
|
||||
"isLatestFirmware": false,
|
||||
"modifiedOn": "2025-10-07T12:51:07.3603727+00:00",
|
||||
"modifiedBy": "00000000-0000-0000-0000-000000000000",
|
||||
"id": "2aa3b02c-78de-4715-8f5b-61bf7c3d1b62",
|
||||
"deleted": false,
|
||||
"createdOn": "2025-10-07T09:44:01.1515163+00:00",
|
||||
"createdBy": "475ebc33-8e90-4be5-2424-08ddfbe49482"
|
||||
}
|
||||
]
|
||||
6
tests/json/token_response.json
Normal file
6
tests/json/token_response.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IkYzM0E0QzYzNkZFOUE3RjBFNzVGQkRBQTQ1REIwOTdBQjUxRUVGMTlSUzI1NiIsIng1dCI6Ijh6cE1ZMl9wcF9Eblg3MnFSZHNKZXJVZTd4ayIsInR5cCI6ImF0K2p3dCJ9.eyJpc3MiOiJodHRwczovL2lkLnJhcHQuaW8iLCJuYmYiOjE3NTk5MjcyMjQsImlhdCI6MTc1OTkyNzIyNCwiZXhwIjoxNzU5OTMwODI0LCJhdWQiOiJyYXB0LWFwaSIsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiLCJyYXB0LWFwaSIsInJhcHQtYXBpLnB1YmxpYyJdLCJhbXIiOlsiY3VzdG9tIl0sImNsaWVudF9pZCI6InJhcHQtdXNlciIsInN1YiI6IjQ3NWViYzMzLThlOTAtNGJlNS0yNDI0LTA4ZGRmYmU0OTQ4MiIsImF1dGhfdGltZSI6MTc1OTkyNzIyNCwiaWRwIjoibG9jYWwiLCJmaXJzdG5hbWUiOiJKZXNwZXIiLCJsYXN0bmFtZSI6IkZ1c3NpbmcgTVx1MDBGOHJrIiwiY291bnRyeSI6IkRlbm1hcmsiLCJlbWFpbCI6ImpmbUBtb2Vya3MuZGsiLCJwcm9maWxlbmFtZSI6ImpmbSIsImVtYWlsY29uZmlybWVkIjoiZmFsc2UiLCJqdGkiOiI3RDM3QjcxMDNBMTc4QkQ0RkMwM0ZCRDNGNTBFMDY2MiJ9.HJtC6Cfps5rqsukMYFRi7S4awpz0KqJjSX1EdL1K6NMpxVEmqmiiA3LwXrsjCbu2FoLjswxyM7rCFqVBZnnQ71DcQJ9gJCe1Ddonj-l5SfA90KHjlvLPQOhvCLrYHc9ulDEi64Dz-WfH8V7WCy1fgl3lY8xmRstS8rjO-5jVwQFFlZvyOHoke09iMsRQmCyuiGYbqmn1i31VSK6L3fMuRfrc1o165T1Xts66vAupJ6nqEhHnAusvCM2gagEvAiXx3hH3xxid4K6zCQLvbg0jxKUHnKI9q2xVj30bW0C2_lKSDKpOOTLjWpjrwjVag5DYxYFggNVgTvF90f_hYddxFX8s9_dgY6EbTunSA1ki86r82Rw7Ebvfwy1phjNHllgu85Y73tIYADcQYxzjglNKPX1Dzed8liUOAXTHgL2Z9-4_q8bwmgNrGy9eH4K_PjyqEuuhDvy2GQxjhOojOXJOU-aSaE4KwaHTod1CZB-kaikMAKjsHDTi3cRspFU4sli665zgPZ2UKYsjTWSlqoKpA7wO3RrMKQiCrNEqyE0ldOi1ctCS-dBEBkuhc-THTwOqMDQTQ6Iqqk1dK72Nm8uB5TwPur-TP4YYxi1hY6w0jSOs0JzUVpaMGgAXg3CM_zhWgTE9S44R3gjxX6EsXayI5f5WtstxpHMbB3rO_DrZPjA",
|
||||
"expires_in": 3600,
|
||||
"token_type": "Bearer",
|
||||
"scope": "openid profile rapt-api rapt-api.public"
|
||||
}
|
||||
83
tests/test_fermentation_chamber.py
Normal file
83
tests/test_fermentation_chamber.py
Normal file
@@ -0,0 +1,83 @@
|
||||
import pytest
|
||||
import json
|
||||
import responses
|
||||
from rapt.client import Client
|
||||
from rapt.fermentation_chamber import FermentationChamber
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def client():
|
||||
yield Client("test", "test")
|
||||
|
||||
@responses.activate
|
||||
def test_get_fermentation_chambers(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.get("https://api.rapt.io/api/fermentationchambers/getfermentationchambers", json=json_reader("./tests/json/get_fermentation_chambers_response.json"))
|
||||
fermentation_chamber = FermentationChamber(client)
|
||||
ferms = fermentation_chamber.get_fermentation_chambers()
|
||||
|
||||
assert ferms is not None
|
||||
assert len(ferms) == 1
|
||||
|
||||
@responses.activate
|
||||
def test_get_fermentation_chambers_500(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.add(
|
||||
responses.GET,
|
||||
"https://api.rapt.io/api/fermentationchambers/getfermentationchambers",
|
||||
status=500,
|
||||
)
|
||||
fermentation_chamber = FermentationChamber(client)
|
||||
ferms = fermentation_chamber.get_fermentation_chambers()
|
||||
|
||||
assert ferms is None
|
||||
|
||||
@responses.activate
|
||||
def test_get_fermentation_chamber(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.get("https://api.rapt.io/api/fermentationchambers/getfermentationchamber", json=json_reader("./tests/json/get_fermentation_chamber_response.json"))
|
||||
fermentation_chamber = FermentationChamber(client)
|
||||
ferms = fermentation_chamber.get_fermentation_chamber("")
|
||||
|
||||
assert ferms is not None
|
||||
|
||||
@responses.activate
|
||||
def test_get_fermentation_chamber_500(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.add(
|
||||
responses.GET,
|
||||
"https://api.rapt.io/api/fermentationchambers/getfermentationchamber",
|
||||
status=500,
|
||||
)
|
||||
fermentation_chamber = FermentationChamber(client)
|
||||
ferms = fermentation_chamber.get_fermentation_chamber("")
|
||||
|
||||
assert ferms is None
|
||||
|
||||
@responses.activate
|
||||
def test_get_telemetry(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.get("https://api.rapt.io/api/fermentationchambers/gettelemetry", json=json_reader("./tests/json/get_fermentation_chamber_telemetry_response.json"))
|
||||
fermentation_chamber = FermentationChamber(client)
|
||||
telemetry = fermentation_chamber.get_telemetry("", "", "", "")
|
||||
|
||||
assert telemetry is not None
|
||||
assert len(telemetry) == 1
|
||||
|
||||
@responses.activate
|
||||
def test_get_telemetry_500(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.add(
|
||||
responses.GET,
|
||||
"https://api.rapt.io/api/fermentationchambers/gettelemetry",
|
||||
status=500,
|
||||
)
|
||||
fermentation_chamber = FermentationChamber(client)
|
||||
telemetry = fermentation_chamber.get_telemetry("", "", "", "")
|
||||
|
||||
assert telemetry is None
|
||||
|
||||
|
||||
def json_reader(path):
|
||||
with open(path) as f:
|
||||
return json.load(f)
|
||||
83
tests/test_hydrometer.py
Normal file
83
tests/test_hydrometer.py
Normal file
@@ -0,0 +1,83 @@
|
||||
import pytest
|
||||
import json
|
||||
import responses
|
||||
from rapt.client import Client
|
||||
from rapt.hydrometer import Hydrometer
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def client():
|
||||
yield Client("test", "test")
|
||||
|
||||
@responses.activate
|
||||
def test_get_hydrometers(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.get("https://api.rapt.io/api/hydrometers/gethydrometers", json=json_reader("./tests/json/get_hydrometers_response.json"))
|
||||
hydrometer = Hydrometer(client)
|
||||
hydros = hydrometer.get_hydrometers()
|
||||
|
||||
assert hydros is not None
|
||||
assert len(hydros) == 1
|
||||
|
||||
@responses.activate
|
||||
def test_get_hydrometers_500(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.add(
|
||||
responses.GET,
|
||||
"https://api.rapt.io/api/hydrometers/gethydrometers",
|
||||
status=500,
|
||||
)
|
||||
hydrometer = Hydrometer(client)
|
||||
hydros = hydrometer.get_hydrometers()
|
||||
|
||||
assert hydros is None
|
||||
|
||||
@responses.activate
|
||||
def test_get_hydrometer(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.get("https://api.rapt.io/api/hydrometers/gethydrometer", json=json_reader("./tests/json/get_hydrometer_response.json"))
|
||||
hydrometer = Hydrometer(client)
|
||||
hydros = hydrometer.get_hydrometer("")
|
||||
|
||||
assert hydros is not None
|
||||
|
||||
@responses.activate
|
||||
def test_get_hydrometer_500(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.add(
|
||||
responses.GET,
|
||||
"https://api.rapt.io/api/hydrometers/gethydrometer",
|
||||
status=500,
|
||||
)
|
||||
hydrometer = Hydrometer(client)
|
||||
hydros = hydrometer.get_hydrometer("")
|
||||
|
||||
assert hydros is None
|
||||
|
||||
|
||||
@responses.activate
|
||||
def test_get_telemetry(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.get("https://api.rapt.io/api/hydrometers/gettelemetry", json=json_reader("./tests/json/get_hydrometer_telemetry_response.json"))
|
||||
hydrometer = Hydrometer(client)
|
||||
telemetry = hydrometer.get_telemetry("", "", "", "")
|
||||
|
||||
assert telemetry is not None
|
||||
|
||||
@responses.activate
|
||||
def test_get_telemetry_500(client):
|
||||
responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json"))
|
||||
responses.add(
|
||||
responses.GET,
|
||||
"https://api.rapt.io/api/hydrometers/gettelemetry",
|
||||
status=500,
|
||||
)
|
||||
hydrometer = Hydrometer(client)
|
||||
telemetry = hydrometer.get_telemetry("", "", "", "")
|
||||
|
||||
assert telemetry is None
|
||||
|
||||
|
||||
def json_reader(path):
|
||||
with open(path) as f:
|
||||
return json.load(f)
|
||||
Reference in New Issue
Block a user