def choose_apps(): try: userApps = os.listdir('apps') userApps.reverse() except OSError: userApps = [] apps = userApps apps.extend(['snake', 'clock', 'nickname']) prev_selected = store.load('slider', 'apps') or [] uinterface.skippabletext('< > (de)select, A accept, B cancel') selected = uinterface.menu(apps, selected=prev_selected) if selected is not None: store.save('slider', 'apps', selected)
def update(): global apps global app_list_last_modified new_modified = valuestore.last_modified('system', 'launcher_items') if new_modified != app_list_last_modified: app_list_last_modified = new_modified apps = valuestore.load('system', 'launcher_items') or { "0": { "slug": "norbert", "name": "Synthesizer", "colour": "#4A90E2" } } drawApps() return 500
def timesync(): timezone = valuestore.load("system", "timezone") if not timezone: timezone = "Europe/Amsterdam" res = urequests.get("http://worldtimeapi.org/api/timezone/" + timezone) if res.status_code == 200: data = res.json() print(data) tm = data["unixtime"] - 946684800 + data["raw_offset"] + data[ "dst_offset"] rtc = RTC() rtc.init(tm)
def get(app_slug, default_config): config = valuestore.load(namespace='app', keyname=app_slug) resave = False if config is None: config = default_config resave = True for key in default_config.keys(): if key not in config: config[key] = default_config[key] resave = True if resave: valuestore.save(namespace='app', keyname=app_slug, value=config) return config
import uinterface import rgb def mqtt_cb(topic, msg): print("New MQTT msg") rgb.clear() uinterface.skippabletext(msg) uinterface.connect_wifi() import valuestore settings = valuestore.load('mqttclient', 'settings') if settings is None: settings = {"client_id": "badge"} if "mqtt_server" not in settings: uinterface.skippabletext("Specify MQTT host") settings["mqtt_server"] = uinterface.text_input( "abcdefghijklmnopqrstuvwxzy.0123456789") valuestore.save('mqttclient', 'settings', settings) client_id = settings['client_id'] try: mqttc = MQTTClient(client_id, settings["mqtt_server"]) mqttc.set_callback(mqtt_cb) mqttc.connect() except: # Maybe wrong hostname
import machine, virtualtimers, system, gc, valuestore apps = valuestore.load('slider', 'apps') or ['clock', 'nickname'] current_index = valuestore.load('slider', 'current') or 0 time = valuestore.load('slider', 'time') or 20 next_index = None if current_index is None else ((current_index + 1) % len(apps)) def _next(): import valuestore ## Start next app by restarting slider print('rebooting into next app: ', next_index) valuestore.save('slider', 'current', next_index) system.start('slider') pass ## Set timer for starting next app virtualtimers.new(time * 1000, _next, hfpm=True) if len(apps) == 0: print('No apps set, slider will start normal launcher instead') system.reboot() if current_index is None or current_index < 0 or current_index >= len(apps): print('Current app index %d is out of the bounds of the set slider apps, setting index to 0' % current_index) try: current_index = 0 valuestore.save('slider', 'current', current_index) except BaseException as error: print('Additional error whilst saving index: %s' % error) system.start('launcher') app = apps[current_index]