Merge pull request #27 from pimoroni/jorjun-master

Example moisture-reading web API (aiohttp) (replaces #21)
This commit is contained in:
Philip Howard
2023-01-19 16:36:09 +00:00
committed by GitHub

36
examples/web_serve.py Normal file
View File

@@ -0,0 +1,36 @@
"""
@jorjun Anno Vvii ☉ in ♓ ☽ in ♋
License: MIT
Description: Web API for moisture readings: http://<your-pi-host>:8080/
"""
from functools import partial
import json
import logging
from aiohttp import web
from grow.moisture import Moisture
json_response = partial(web.json_response, dumps=partial(json.dumps, default=str))
routes = web.RouteTableDef()
@routes.get("/") # Or whatever URL path you want
async def reading(request):
data = {
"m1": meter[0].moisture,
"m2": meter[1].moisture,
"m3": meter[2].moisture,
}
return json_response(data)
if __name__ == "__main__":
app = web.Application()
logging.basicConfig(level=logging.INFO)
app.add_routes(routes)
meter = [Moisture(_+1) for _ in range(3)]
web.run_app(
app,
host="0.0.0.0",
port=8080,
access_log_format='%s %r [%b / %Tf] "%{User-Agent}i"',
)