Skip to content

Commit 075f630

Browse files
committed
Track pump activity
1 parent 792629f commit 075f630

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

opensensor/collection_apis.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
Lux,
2424
Moisture,
2525
Pressure,
26+
PumpBoard,
2627
RelayBoard,
2728
RelayStatus,
2829
Temperature,
@@ -118,6 +119,7 @@ def get_device_info_cached(device_id: str):
118119
"pH": "pH",
119120
"liquid": "liquid",
120121
"relays": "relays",
122+
"pumps": "pumps",
121123
}
122124

123125

@@ -185,6 +187,8 @@ def _record_data_to_ts_collection(
185187
doc_to_insert[column_name + "_unit"] = value
186188
elif key == "relays":
187189
doc_to_insert[column_name] = json.dumps(value)
190+
elif key == "pumps":
191+
doc_to_insert[column_name] = json.dumps(value)
188192
else:
189193
doc_to_insert[column_name] = str(value)
190194

@@ -742,6 +746,12 @@ async def historical_data_route(
742746
response_model=Page[RelayBoard],
743747
methods=["GET"],
744748
)
749+
router.add_api_route(
750+
"/pumps/{device_id}",
751+
create_historical_data_route(PumpBoard),
752+
response_model=Page[PumpBoard],
753+
methods=["GET"],
754+
)
745755

746756

747757
@router.post("/environment/")

opensensor/collections.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,25 @@ def collection_name(cls):
7777
return "relays"
7878

7979

80+
class PumpStatus(BaseModel):
81+
position: int
82+
enabled: bool
83+
speed: float | None = None
84+
duration: float | None = None
85+
timestamp: float | None = None
86+
description: str | None = None
87+
88+
89+
class PumpBoard(TimestampModel):
90+
"""Pump activity tracking"""
91+
92+
pumps: List[PumpStatus]
93+
94+
@classmethod
95+
def collection_name(cls):
96+
return "pumps"
97+
98+
8099
class Moisture(TimestampModel):
81100
readings: List[float | Decimal | int] | str
82101

@@ -99,6 +118,7 @@ class Environment(BaseModel):
99118
pH: PH | None = None
100119
liquid: LiquidLevel | None = None
101120
relays: RelayBoard | None = None
121+
pumps: PumpBoard | None = None
102122

103123

104124
class VPD(BaseModel):

0 commit comments

Comments
 (0)