[{"element_type":"alert","content":"\u003cp\u003eThis has been released as part of version 1.0.0.beta-87\u003c/p\u003e","metadata":{"class":"element row-fluid alert-element build-alert alert-info","markdown":"This has been released as part of version 1.0.0.beta-87","alert_type":"info"}},{"element_type":"text","content":"\n  \n        \u003cp\u003eAs of July 23rd 2024, we've added support into\u0026nbsp;\u003ca href=\"https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper\"\u003eWipperSnapper\u003c/a\u003e for specifying backup wifi credentials, simply by adding an array of entries under the new key \"alternative_networks\" in your secrets file.\u003c/p\u003e\n      \n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eYou can have up to 3 alternative/backup network configs, plus the original one. What original one? And what does it all look like? Well let's go through an example:\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eWorked Example - Just one network like before:\u003c/h2\u003e\n\u003cp\u003eHere for simplicity you can see I've added my Adafruit IO username and key into the secrets.json file on my device, along with my wifi credentials for my home network (let's pretend it's called free4all and the password is password).\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"code","content":"{\n  \"io_username\": \"tyeth\",\n  \"io_key\": \"super_secret_key_made_of_letters_and_numbers\",\n  \"network_type_wifi\": {\n    \"network_ssid\": \"free4all\",\n    \"network_password\": \"password\"\n  },\n  \"status_pixel_brightness\": 0.2\n}","metadata":{"language":"javascript","linenums":false}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eWorked Example - Add alternative networks too:\u003c/h2\u003e\n\u003cp\u003eWe can now add backup options for other wifi networks, like your home, office, garden, or mobile blimp...\u003c/p\u003e\n\u003cp\u003eBy simply adding an extra key called\u0026nbsp;\u003ccode\u003ealternative_networks\u003c/code\u003e to the \u003ccode\u003enetwork_type_wifi\u003c/code\u003e section of the 'secrets.json' file it can happen so easily. Don't forget to add the comma on the line before (required in json to signify there's another field to come). Then filling the new key with an array of networks (using\u0026nbsp;\u003ccode\u003enetwork_ssid\u003c/code\u003e and\u0026nbsp;\u003ccode\u003enetwork_password\u003c/code\u003e for each array entry) we get support added on any ESP32 (or -Sx/Cx) based board. Also the Raspberry Pi Pico W and ESP8266 have gained the same support (no SAMD yet sorry).\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"code","content":"{\n  \"io_username\": \"tyeth\",\n  \"io_key\": \"super_secret_key_made_of_letters_and_numbers\",\n  \"network_type_wifi\": {\n    \"network_ssid\": \"free4all\",\n    \"network_password\": \"password\",\n    \"alternative_networks\": [\n      {\n        \"network_ssid\": \"office\",\n        \"network_password\": \"password\"\n      },\n      {\n        \"network_ssid\": \"garden\",\n        \"network_password\": \"password\"\n      },\n      {\n        \"network_ssid\": \"blimp\",\n        \"network_password\": \"password\"\n      }\n    ]\n  },\n  \"status_pixel_brightness\": 0.2\n}","metadata":{"language":"javascript","linenums":false}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eHighlighted Visual Difference\u003c/h2\u003e\n\u003cp\u003eIf we highlight the change using \u003cstrong\u003egit diff\u003c/strong\u003e then hopefully you'll notice the additional comma before we insert the new \u003ccode\u003ealternative_networks\u003c/code\u003e field along with the extra array of networks:\u003c/p\u003e\n\u003cp\u003e(Red lines starting with a minus/dash '-' means removed line, Green lines starting with a plus '+' means added line)\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/001/003/original/image.png?1721387250","metadata":{"caption":""}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eOf course you wouldn't really commit your secrets into a version control / source control system like \u003cstrong\u003egit\u003c/strong\u003e, as they could be more easily exposed/leaked! In fact GitHub tries to prevent you sending changes with secrets if detected!\u003c/p\u003e\n      \n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch3\u003eFinally a quick reminder that there can be a\u0026nbsp;\u003cspan style=\"text-decoration: underline;\"\u003e\u003cstrong\u003emaximum of 3\u003c/strong\u003e\u003c/span\u003e alternative networks!\u003c/h3\u003e\n      \n\n\n\n\n\n\n\n","metadata":{}}]