5 Commits

Author SHA1 Message Date
55ef5c1580 Move json load out of set_settings 2025-06-04 19:22:09 +12:00
c15f9787a7 Sync after going through all the keys 2025-06-02 00:32:43 +12:00
3d0078f118 Update leds straight away after a sync 2025-06-02 00:18:25 +12:00
9e72dba035 Check all keys before returning 2025-06-02 00:16:58 +12:00
3d7dd754eb Wifi and ESPNOW don't work at the same time 2025-06-02 00:15:31 +12:00
4 changed files with 13 additions and 10 deletions

View File

@@ -8,7 +8,7 @@ import utime
import machine
import time
import wifi
import json
async def main():
settings = Settings()
@@ -31,7 +31,9 @@ async def main():
e.active(True)
async for mac, msg in e:
print(msg)
settings.set_settings(msg, patterns)
data = json.loads(msg)
settings.set_settings(data, patterns)
print("should not print")
async def wifi_connect():
@@ -55,7 +57,7 @@ async def main():
wdt.feed()
asyncio.create_task(wifi_connect())
#asyncio.create_task(wifi_connect())
asyncio.create_task(tick())
asyncio.create_task(espnow())

View File

@@ -34,7 +34,8 @@ class Patterns:
def sync(self):
self.pattern_step=0
self.last_update = utime.ticks_ms()
self.last_update = utime.ticks_ms() - self.delay
self.tick()
def tick(self):
if self.patterns[self.selected]:

View File

@@ -48,10 +48,8 @@ class Settings(dict):
self.set_defaults()
self.save()
def set_settings(self, raw_json, patterns):
patterns.sync()
def set_settings(self, data, patterns):
try:
data = json.loads(raw_json)
print(data)
for key, value in data.items():
print(key, value)
@@ -80,8 +78,9 @@ class Settings(dict):
else:
return "Invalid key", 400
self[key] = value
self.save()
return "OK", 200
patterns.sync()
self.save()
return "OK", 200
except (KeyError, ValueError):
return "Bad request", 400

View File

@@ -33,8 +33,9 @@ def web(settings, patterns):
while True:
data = await ws.receive()
if data:
# Process the received data
_, status_code = settings.set_settings(data, patterns)
_, status_code = settings.set_settings(json.loads(data), patterns)
#await ws.send(status_code)
else:
break