diff --git a/docs/m1-wled-migration.md b/docs/m1-wled-migration.md index 94a70c5..6725296 100644 --- a/docs/m1-wled-migration.md +++ b/docs/m1-wled-migration.md @@ -15,7 +15,8 @@ guarantees a factory-fresh 64x64 boot. It is offered for Rev6 only, so Rev4 owne to the WLED-MM 14.5.1 (Rev4) variant. The M-1 entry sets `"platform": "wled"`, so step 3 of the wizard gives the WLED onboarding -(WLED-AP fallback, discovered WLED integration, WLED web UI for effects and manual OTA) instead +(open Apollo M-1 hotspot at 4.3.2.1, discovered WLED integration, WLED web UI for effects and +manual OTA) instead of the ESPHome Dashboard "Take control" flow. The hardware can run ESPHome, we just do not offer an ESPHome build yet. When we do, add that manifest as another variant and mark it in a `platforms` map (`"platforms": { "stable": { "": "esphome" } }`); step 3 then switches @@ -32,3 +33,12 @@ Hosting: WLED-MM-M1 serves the 14.5.1 manifests from committed files via legacy WLED-M1 serves the 16.0.1 manifest through an Actions Pages workflow (.github/workflows/apollo-pages.yml) that publishes manifest.json plus M-1_full_install.bin from the latest GitHub release, so the 16MB image never enters git history. + +## Setup hotspot (verified against the shipped images, not WLED defaults) + +Both the 16.0.1 and 14.5.1 Apollo builds broadcast an **open** hotspot, not the stock WLED +`WLED-AP` / `wled1234` pair. The string `wled1234` is absent from `M-1_full_install.bin` and from +`Apollo_M-1_Rev6_14.5.1.bin`, while the sibling default `wledota` is present in both, so `apPass` +is empty. The m1-b8 release notes state it directly: "STEP 1: join the open Apollo M-1 WiFi", and +list "cleaner hotspot name: the setup WiFi is now just Apollo M-1 (no serial-number suffix)" as new +in that build, which is why step 3 says older builds carry a suffix. Setup address is 4.3.2.1. diff --git a/js/views/device.js b/js/views/device.js index 9519033..090adcf 100644 --- a/js/views/device.js +++ b/js/views/device.js @@ -51,9 +51,11 @@ function platformFor(device, channel, variant) { function stepThreeHtml(device, platform) { if (platform === 'wled') { return ` -

If you did not set Wi-Fi during install, join the device's own - WLED-AP network (password wled1234) and pick your network - at 4.3.2.1. Once it is on your Wi-Fi, go to +

If you did not set Wi-Fi during install, join the open + Apollo ${device.name} Wi-Fi hotspot the device broadcasts (builds before + 16.0.1 add a serial-number suffix to the name), then open 4.3.2.1 in a + browser and pick your network. On 16.0.1 the panel itself shows a setup card with that + address and a QR code. Once it is on your Wi-Fi, go to Settings → Devices & services in Home Assistant, where it appears as a discovered WLED device. Click Configure, and you're done.

diff --git a/tests/installer.spec.js b/tests/installer.spec.js index 5e9f145..a53459a 100644 --- a/tests/installer.spec.js +++ b/tests/installer.spec.js @@ -331,8 +331,11 @@ test('step 3 gives WLED instructions on a WLED device, not ESPHome ones', async await page.goto(`/#/${d.id}`); const done = page.locator('#step-done'); await expect(done).toContainText('discovered'); - await expect(done).toContainText('WLED-AP'); + await expect(done).toContainText('4.3.2.1'); await expect(done).toContainText('Manual OTA Update'); + // The Apollo builds ship an OPEN hotspot, not the stock WLED-AP/wled1234 pair. + await expect(done).not.toContainText('wled1234'); + await expect(done).not.toContainText('WLED-AP'); // The ESPHome adoption path does not exist on a WLED device. await expect(done).not.toContainText('ESPHome Dashboard'); await expect(done).not.toContainText('Take control'); @@ -356,15 +359,15 @@ test('step 3 follows a per-variant platform override', async ({ page }) => { await page.goto(`/#/${d.id}`); const done = page.locator('#step-done'); - await expect(done).toContainText('WLED-AP'); + await expect(done).toContainText('4.3.2.1'); await page.locator(`#variant-seg button[data-variant="${espVariant}"]`).click(); await expect(done).toContainText('ESPHome Dashboard'); - await expect(done).not.toContainText('WLED-AP'); + await expect(done).not.toContainText('4.3.2.1'); // And back, so the override is not a one-way trip. await page.locator(`#variant-seg button[data-variant="${wledVariant}"]`).click(); - await expect(done).toContainText('WLED-AP'); + await expect(done).toContainText('4.3.2.1'); }); function blobFromRaw(raw) {