예제 #1
0
def set_nickname():
    rgb.clear()
    uinterface.skippabletext('Set nickname:')
    new_name = uinterface.text_input()
    if new_name is not None and new_name != '':
        machine.nvs_setstr('badge', 'nickname', new_name)
    system.start('nickname')
        rgb.framerate(20)
        rgb.setfont(rgb.FONT_7x5)
        uinterface.skippabletext(message)

def ap_requires_password(ap_type):
        return "OPEN" != ap_type

ap_list = scan_access_point_list()
ssids = [ap[0] for ap in ap_list]
prompt_message("Select network")

choice = uinterface.menu(ssids)
if not (choice is None):
        chosen_ssid, chosen_ap_type = ap_list[choice]

        pw_required = ap_requires_password(chosen_ap_type)
        if pw_required:
                prompt_message("Enter password")

        chosen_pass = uinterface.text_input() if pw_required else ''
        if not pw_required or chosen_pass:
                # For OTA
                nvs = esp32.NVS("system")
                nvs.set_blob("wifi.ssid", chosen_ssid)
                nvs.set_blob("wifi.password", chosen_pass)
                nvs.commit()
                # For apps
                valuestore.save("system", "wifi.ssid", chosen_ssid)
                valuestore.save("system", "wifi.password", chosen_pass)

system.reboot()
예제 #3
0
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
    del settings["mqtt_server"]
    valuestore.save('mqttclient', 'settings', settings)
    # Might be something different, rethrow to restart...
    raise

#status = client_id + "/status"
예제 #4
0
def set_slider_time():
    uinterface.skippabletext('Set seconds to show each app')
    seconds = uinterface.text_input(uinterface.NUMERIC_CHARSET)
    if seconds is not None and seconds != '':
        store.save('slider', 'time', int(seconds))