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

View File

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

View File

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

View File

@@ -33,8 +33,9 @@ def web(settings, patterns):
while True: while True:
data = await ws.receive() data = await ws.receive()
if data: if data:
# Process the received 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) #await ws.send(status_code)
else: else:
break break