Refine blink feature

This commit is contained in:
2026-03-24 23:35:05 +01:00
parent 1096bf5ce3
commit ecd8eb0778
2 changed files with 78 additions and 37 deletions
+35 -8
View File
@@ -136,7 +136,10 @@ async def setColor(request):
__setBusyLightColor(color, blBrightness)
return {'status': blStatus}
return {
'status': blStatus,
'blinking': blBlinking
}
@app.route('/api/status/<status>', methods=['GET', 'POST'])
async def setStatus(request, status):
@@ -154,7 +157,10 @@ async def setStatus(request, status):
else:
return {'error': 'unknown /api/status/' + lStatus + ' route'}, 404
return {'status': blStatus}
return {
'status': blStatus,
'blinking': blBlinking
}
async def __blinkTask(color, brightness, frequency, duration):
global blBlinking, blStatus, blColor, blBrightness
@@ -181,7 +187,10 @@ async def __blinkTask(color, brightness, frequency, duration):
async def blinkStop(request):
global blBlinking
blBlinking = False
return {'status': blStatus}
return {
'status': blStatus,
'blinking': blBlinking
}
@app.post('/api/blink')
async def setBlink(request):
@@ -215,7 +224,13 @@ async def setBlink(request):
# Launch blink task
asyncio.create_task(__blinkTask(savedColor, savedBrightness, frequency, duration))
return {'status': 'blinking', 'frequency': frequency, 'duration': duration}
elapsed = time.ticks_diff(time.ticks_ms(), blBlinkStartTime) / 1000.0
remains = max(0.0, blBlinkDuration - elapsed)
isblinking = True
return {
'status': blStatus,
'blinking': blBlinking
}
@app.get('/api/blink')
async def getBlink(request):
@@ -226,7 +241,7 @@ async def getBlink(request):
remains = 0.0
return {
'isblinking': blBlinking,
'blinking': blBlinking,
'frequency': blBlinkFrequency,
'duration': blBlinkDuration,
'remains': remains
@@ -240,13 +255,22 @@ async def getColor(request):
@app.get('/api/status')
async def getStatus(request):
return {'status': blStatus}
return {
'status': blStatus,
'blinking': blBlinking
}
@app.get('/api/debug')
async def getDebugInfo(request):
r, g, b = blColor
dr, dg, db = neoPixelStrip.__getitem__(0)
return {'status': blStatus, 'brightness': blBrightness, 'color': {'r': r, 'g': g, 'b': b}, 'dimColor': {'r': dr, 'g': dg, 'b': db}}
return {
'status': blStatus,
'blinking': blBlinking,
'brightness': blBrightness,
'color': {'r': r, 'g': g, 'b': b},
'dimColor': {'r': dr, 'g': dg, 'b': db}
}
@app.post('/api/mutedeck-webhook')
async def mutedeckWebhook(request):
@@ -270,7 +294,10 @@ async def mutedeckWebhook(request):
else:
__setBusyLightStatus('available')
return {'status': blStatus}
return {
'status': blStatus,
'blinking': blBlinking
}
@app.post('/shutdown')