Rework status object

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-04-24 17:41:57 +02:00
parent 60d179cf4a
commit 8cf7a74a60
2 changed files with 91 additions and 11 deletions
+63 -9
View File
@@ -165,7 +165,7 @@ class LedController:
async def stop(self):
await self.sendCommand({"type": "off"})
def get_state(self):
def getStatus(self):
if self.blinking and self.blinkDuration > 0:
elapsed = time.ticks_diff(time.ticks_ms(), self.blinkStart) / 1000
remains = max(0.0, self.blinkDuration - elapsed)
@@ -258,7 +258,16 @@ async def setColor(request):
await led.set_color((r, g, b), brightness)
status = await led.get_status()
return {'status': status}
state = led.getStatus()
return {'status': state["status"],
'color': state["color"],
'brightness': state["brightness"],
'isblinking': state["isblinking"],
'blinkParameters': {
'frequency': state["frequency"],
'duration': state["duration"],
'remains': state["remains"]}
}
@app.get('/api/color')
@@ -270,7 +279,16 @@ async def getColor(request):
@app.get('/api/status')
async def getStatus(request):
status = await led.get_status()
return {'status': status}
state = led.getStatus()
return {'status': state["status"],
'color': state["color"],
'brightness': state["brightness"],
'isblinking': state["isblinking"],
'blinkParameters': {
'frequency': state["frequency"],
'duration': state["duration"],
'remains': state["remains"]}
}
@app.route('/api/status/<status>', methods=['GET', 'POST'])
@@ -281,7 +299,16 @@ async def setStatus(request, status):
return {'error': 'unknown status'}, 404
status = await led.get_status()
return {'status': status}
state = led.getStatus()
return {'status': state["status"],
'color': state["color"],
'brightness': state["brightness"],
'isblinking': state["isblinking"],
'blinkParameters': {
'frequency': state["frequency"],
'duration': state["duration"],
'remains': state["remains"]}
}
@app.post('/api/blink')
@@ -300,12 +327,21 @@ async def setBlink(request):
await led.blink(freq, duration)
return {'status': led.status}
state = led.getStatus()
return {'status': state["status"],
'color': state["color"],
'brightness': state["brightness"],
'isblinking': state["isblinking"],
'blinkParameters': {
'frequency': state["frequency"],
'duration': state["duration"],
'remains': state["remains"]}
}
@app.get('/api/blink')
async def getBlink(request):
state = led.get_state()
async def getBlinkStatus(request):
state = led.getStatus()
return {
'isblinking': state["isblinking"],
'frequency': state["frequency"],
@@ -319,7 +355,16 @@ async def blinkStop(request):
await led.stop()
await led.set_status(led.previousStatus)
status = await led.get_status()
return {'status': status}
state = led.getStatus()
return {'status': state["status"],
'color': state["color"],
'brightness': state["brightness"],
'isblinking': state["isblinking"],
'blinkParameters': {
'frequency': state["frequency"],
'duration': state["duration"],
'remains': state["remains"]}
}
@app.get('/api/debug')
@@ -352,7 +397,16 @@ async def mutedeckWebhook(request):
else:
await led.set_status('available')
return {'status': led.status}
state = led.getStatus()
return {'status': state["status"],
'color': state["color"],
'brightness': state["brightness"],
'isblinking': state["isblinking"],
'blinkParameters': {
'frequency': state["frequency"],
'duration': state["duration"],
'remains': state["remains"]}
}
@app.post('/shutdown')