Skip to content

Commit

Permalink
fix: Fixed heat pump retrieved at parsing (15 minutes dev time)
Browse files Browse the repository at this point in the history
  • Loading branch information
BottlecapDave committed Dec 11, 2024
1 parent 6955669 commit cd47109
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 22 deletions.
38 changes: 19 additions & 19 deletions custom_components/octopus_energy/heat_pump/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,60 +17,60 @@ def mock_heat_pump_status_and_configuration():
"code": "ADC1",
"connectivity": {
"online": True,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
},
"telemetry": {
"temperatureInCelsius": 57 + (random.randrange(1, 20) * 0.1),
"humidityPercentage": None,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
"code": "ADC2",
"connectivity": {
"online": True,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
},
"telemetry": {
"temperatureInCelsius": -273 + (random.randrange(1, 20) * 0.1),
"humidityPercentage": None,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
"code": "ADC3",
"connectivity": {
"online": True,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
},
"telemetry": {
"temperatureInCelsius": -273 + (random.randrange(1, 20) * 0.1),
"humidityPercentage": None,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
"code": "ADC4",
"connectivity": {
"online": True,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
},
"telemetry": {
"temperatureInCelsius": -273 + (random.randrange(1, 20) * 0.1),
"humidityPercentage": None,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
"code": "SENSOR01",
"connectivity": {
"online": True,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
},
"telemetry": {
"temperatureInCelsius": 18 + (random.randrange(1, 20) * 0.1),
"humidityPercentage": 57 + (random.randrange(1, 20) * 0.1),
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
Expand All @@ -82,31 +82,31 @@ def mock_heat_pump_status_and_configuration():
"telemetry": {
"temperatureInCelsius": 22 + (random.randrange(1, 20) * 0.1),
"humidityPercentage": 54 + (random.randrange(1, 20) * 0.1),
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
"code": "SENSOR03",
"connectivity": {
"online": True,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
},
"telemetry": {
"temperatureInCelsius": 22 + (random.randrange(1, 20) * 0.1),
"humidityPercentage": 60 + (random.randrange(1, 20) * 0.1),
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
"code": "SENSOR04",
"connectivity": {
"online": True,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
},
"telemetry": {
"temperatureInCelsius": 22 + (random.randrange(1, 20) * 0.1),
"humidityPercentage": 46 + (random.randrange(1, 20) * 0.1),
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
}
],
Expand All @@ -118,7 +118,7 @@ def mock_heat_pump_status_and_configuration():
"mode": "AUTO",
"relaySwitchedOn": False,
"heatDemand": False,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
Expand All @@ -128,7 +128,7 @@ def mock_heat_pump_status_and_configuration():
"mode": "AUTO",
"relaySwitchedOn": False,
"heatDemand": False,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
Expand All @@ -138,7 +138,7 @@ def mock_heat_pump_status_and_configuration():
"mode": "OFF",
"relaySwitchedOn": False,
"heatDemand": False,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
},
{
Expand All @@ -148,7 +148,7 @@ def mock_heat_pump_status_and_configuration():
"mode": "OFF",
"relaySwitchedOn": False,
"heatDemand": False,
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S%z")
"retrievedAt": (now - timedelta(seconds=random.randrange(1, 120))).strftime("%Y-%m-%dT%H:%M:%S.%f%z")
}
}
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def _handle_coordinator_update(self) -> None:
for sensor in sensors:
if sensor.code == self._sensor.code and sensor.telemetry is not None:
self._state = sensor.telemetry.humidityPercentage
self._attributes["retrieved_at"] = datetime.strptime(sensor.telemetry.retrievedAt, "%Y-%m-%dT%H:%M:%S%z")
self._attributes["retrieved_at"] = datetime.fromisoformat(sensor.telemetry.retrievedAt)

self._last_updated = current

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def _handle_coordinator_update(self) -> None:
for sensor in sensors:
if sensor.code == self._sensor.code and sensor.telemetry is not None:
self._state = sensor.telemetry.temperatureInCelsius
self._attributes["retrieved_at"] = datetime.strptime(sensor.telemetry.retrievedAt, "%Y-%m-%dT%H:%M:%S%z")
self._attributes["retrieved_at"] = datetime.fromisoformat(sensor.telemetry.retrievedAt)

self._last_updated = current

Expand Down
2 changes: 1 addition & 1 deletion custom_components/octopus_energy/heat_pump/zone.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ def _handle_coordinator_update(self) -> None:
if sensor.code == self._zone.configuration.primarySensor and sensor.telemetry is not None:
self._attr_current_temperature = sensor.telemetry.temperatureInCelsius

self._attributes["retrieved_at"] = datetime.strptime(zone.telemetry.retrievedAt, "%Y-%m-%dT%H:%M:%S%z")
self._attributes["retrieved_at"] = datetime.fromisoformat(zone.telemetry.retrievedAt)

self._last_updated = current

Expand Down

0 comments on commit cd47109

Please sign in to comment.