From a8fb079814d2ffea0cf210243d8b856e6c816456 Mon Sep 17 00:00:00 2001 From: Jimmy Hedman Date: Wed, 11 Apr 2018 18:56:33 +0200 Subject: [PATCH] Make sleep depending on environment variable. - set QUICKWIZARD to true to disable sleeps. --- esphomeyaml/wizard.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/esphomeyaml/wizard.py b/esphomeyaml/wizard.py index 2651c5b6de..23dfad835b 100644 --- a/esphomeyaml/wizard.py +++ b/esphomeyaml/wizard.py @@ -70,12 +70,20 @@ logger: """ +if os.environ['QUICKWIZARD']: + def sleep(time): + pass +else: + from time import sleep + + def print_step(step, big): print() print() print("============= STEP {} =============".format(step)) print(big) print("===================================") + sleep(0.25) def default_input(text, default): @@ -100,17 +108,23 @@ def wizard(path): "or chose another configuration file.".format(color('cyan', path))) return 1 print("Hi there!") + sleep(1.5) print("I'm the wizard of esphomeyaml :)") + sleep(1.25) print("And I'm here to help you get started with esphomeyaml.") + sleep(2.0) print("In 5 steps I'm going to guide you through creating a basic " "configuration file for your custom ESP8266/ESP32 firmware. Yay!") + sleep(3.0) print() print_step(1, CORE_BIG) print("First up, please choose a " + color('green', 'name') + " for your node.") print("It should be a unique name that can be used to identify the device later.") + sleep(1) print("For example, I like calling the node in my living room {}.".format( color('bold_white', "livingroom"))) print() + sleep(1) name = raw_input(color("bold_white", "(name): ")) while True: try: @@ -122,15 +136,18 @@ def wizard(path): name = strip_accents(name).replace(' ', '_') name = u''.join(c for c in name if c in cv.ALLOWED_NAME_CHARS) print("Shall I use \"{}\" as the name instead?".format(color('cyan', name))) + sleep(0.5) name = default_input("(name [{}]): ", name) print("Great! Your node is now called \"{}\".".format(color('cyan', name))) + sleep(1) print_step(2, ESP_BIG) print("Now I'd like to know which *board* you're using so that I can compile " "firmwares for it.") print("Are you using an " + color('green', 'ESP32') + " or " + color('green', 'ESP8266') + " based board?") while True: + sleep(0.5) print() print("Please enter either ESP32 or ESP8266.") platform = raw_input(color("bold_white", "(ESP32/ESP8266): ")) @@ -142,6 +159,7 @@ def wizard(path): "\"{}\". Please try again.".format(platform)) print("Thanks! You've chosen {} as your platform.".format(color('cyan', platform))) print() + sleep(1) if platform == ESP_PLATFORM_ESP32: board_link = 'http://docs.platformio.org/en/latest/platforms/espressif32.html#boards' @@ -149,6 +167,7 @@ def wizard(path): board_link = 'http://docs.platformio.org/en/latest/platforms/espressif8266.html#boards' print("Next, I need to know what " + color('green', 'board') + " you're using.") + sleep(0.5) print("Please go to {} and choose a board.".format(color('green', board_link))) print() # Don't sleep because user needs to copy link @@ -165,18 +184,22 @@ def wizard(path): except vol.Invalid: print(color('red', "Sorry, I don't think the board \"{}\" exists.")) print() + sleep(0.25) print("Possible options are {}".format(', '.join(boards))) print() print("Way to go! You've chosen {} as your board.".format(color('cyan', board))) print() + sleep(1) print_step(3, WIFI_BIG) print("In this step, I'm going to create the configuration for " "WiFi.") print() + sleep(1) print("First, what's the " + color('green', 'SSID') + " (the name) of the WiFi network {} " "I should connect to?".format(name)) + sleep(1.5) print("For example \"{}\".".format(color('bold_white', "Abraham Linksys"))) while True: ssid = raw_input(color('bold_white', "(ssid): ")) @@ -187,21 +210,26 @@ def wizard(path): print(color('red', "Unfortunately, \"{}\" doesn't seem to be a valid SSID. " "Please try again.".format(ssid))) print() + sleep(1) print("Thank you very much! You've just chosen \"{}\" as your SSID.".format( color('cyan', ssid))) print() + sleep(0.75) print("Now please state the " + color('green', 'password') + " of the WiFi network so that I can connect to it.") print() print("For example \"{}\"".format(color('bold_white', 'PASSWORD42'))) + sleep(0.5) psk = raw_input(color('bold_white', '(PSK): ')) print("Perfect! WiFi is now set up (you can create static IPs and so on later).") + sleep(1.5) print_step(4, MQTT_BIG) print("Almost there! Now let's setup MQTT so that your node can connect to the outside world.") print() + sleep(1) print("Please enter the " + color('green', 'address') + " of your MQTT broker.") print() print("For example \"{}\".".format(color('bold_white', '192.168.178.84'))) @@ -215,6 +243,7 @@ def wizard(path): broker, err))) print("Please try again.") print() + sleep(1) print("Thanks! Now enter the " + color('green', 'username') + " and " + color('green', 'password') + " for the MQTT broker. Leave empty for no authentication.") @@ -237,6 +266,7 @@ def wizard(path): print("This can be insecure if you do not trust the WiFi network. Do you want to set " "an " + color('green', 'OTA password') + " for remote updates?") print() + sleep(0.25) print("Press ENTER for no password") ota_password = raw_input(color('bold_white', '(password): '))