How to force activate IPv4 binding to the HA Yellow Ethernet port
when “no IPv4 /no HA UI” is available/accessible and the Yellow does not respond to IPv4 ping.
Prerequisites
-
Client: Windows 10/11
-
Shell: Windows PowerShell (a.k.a. Terminal) — open via Start → “PowerShell”
-
Windows PC is connected over Wi-Fi on the same LAN (not a guest/isolated SSID)
- Prove the Yellow is up (IPv6 link-local ping from Windows)
- Find your Wi-Fi interface index:
netsh interface ipv6 show interfaces
Sample output:
Idx Met MTU State Name
11 45 1500 connected Wi-Fi
- Find the Yellow’s IPv6 link-local (fe80::…):
- Option A: read it in your router’s device list (match the MAC on the Yellow).
- Option B (discover from Windows):
ping -6 ff02::1%11
netsh interface ipv6 show neighbors interface=11
Sample line to match (same MAC as Yellow):
fe80::xxxx:yyyy:zzzz:aa40 e4-5f-zz-yy-zz-04 Reachable
- Ping the Yellow with zone index:
ping -6 fe80::xxxx:yyyy:zzzz:aa40%11
Sample success output:
Reply from fe80::xxxx:yyyy:zzzz:aa40%11: time=2ms
Why (objective): IPv4 is down; use IPv6 link-local as a side door to reach the OS so that IPv4 can be restored/forced.
Why (logic): Linux/HAOS automatically assigns an IPv6 link-local (fe80::/64) as soon as the NIC/driver are up-no router/DHCPv6 needed. This is generic Linux behavior (applies to HAOS), and not Yellow-specific. It does not require HA to be functional. A successful ICMPv6 (ping) reply proves the kernel, driver, and L2 link are alive even if IPv4/HA UI are not.
If you do not get an IPv6 reply at all, then either you made a typo somewhere in the address or the command syntax, or your Yellow isn’t attempting to load any core code at all.
But observe that browsers usually won’t open fe80::…%zone URLs; this step is for liveness and CLI access only.
Assuming you could successfully ping the IPv6 address on your Yellow box, then you are in a good position to continue from step #2. If the Ping failed, try to power cycle the Yellow again and make sure to observe the LED flash pattern according to the HA Yellow docs and give it a few minutes to get up and running.
Assuming you successfully could ping the IPv6 address, then:
- Enable host-OS SSH (one-time) — get your id_rsa.pub, put it on a USB stick.
- Check if you already have id_rsa.pub on your Windows client:
If you see id_rsa.pub, print it (copy the entire single line):
type $HOME\\.ssh\\id\_rsa.pub
- If you don’t have a key yet, create one (RSA to produce id_rsa.pub):
ssh-keygen -t rsa -b 3072 -C "HA Yellow"
type $HOME\\.ssh\\id\_rsa.pub
(Alternatively, modern key: ssh-keygen -t ed25519 -C "HA Yellow" → then use id\_ed25519.pub instead.)
- Prepare the USB:
- Format FAT32, label it
CONFIG(all caps). - At the root, create a file named
authorized_keysand paste the single-line public key into that file. OBS; no extra CR/LF or anything else. - Insert the USB stick into the Yellow, and power it on.
- Format FAT32, label it
Why: This enables host SSH on IPv6 port 22222, giving console access without any UI.
- SSH into HAOS (host) over IPv6
ssh -p 22222 root@\[fe80::xxxx:yyyy:zzzz:aa40%11\]
Why: Use the ha CLI to repair IPv4 even when the UI/IPv4 are down.
- Inspect network state
ha network info
Sample (what you might see before fixing IPv4):
interfaces:
- connected: true
enabled: true
interface: end0
ipv4:
address: []
gateway: null
method: auto
nameservers: []
ready: false
ipv6:
address:
- fe80::xxxx:yyyy:zzzz:aa40/64
method: disabled
ready: true
mac: E4:5F:XX:YY:ZZ:04
type: ethernet
Note the wired interface name (e.g., end0) and that IPv4 is not ready.
Why: Identifies the NIC to configure and confirms IPv4 isn’t active.
- Set a static IPv4
ha network update end0 --ipv4-method static --ipv4-address 192.168.1.xx/24 --ipv4-gateway 192.168.1.1 --ipv4-nameserver 192.168.1.1
All on one line. Then verify:
ha network info
Why: Guarantees the Yellow always comes up at 192.168.1.XX (or whatever IPv4 address you prefer) on every boot, independent of DHCP.
- Test from Windows (using your IP address)
ping 192.168.1.XX
Then try to open in your browser:
http://192.168.1.XX:8123
Why: Confirms IPv4 reachability and the HA UI can be accessed.
If ping succeeds but the HA UI still won’t load:
Check if port 8123 is listening:
powershell -NoProfile -Command "Test-NetConnection -ComputerName 192.168.1.XX -Port 8123"
Expected when OK:
TcpTestSucceeded : True
If TcpTestSucceeded = True (service listening, page still not loading), then try:
ssh -p 22222 root@\[fe80::xxxx:yyyy:zzzz:aa40%11\] "ha core logs --tail 100"
ssh -p 22222 root@\[fe80::xxxx:yyyy:zzzz:aa40%11\] "ha core restart"
ssh -p 22222 root@\[fe80::xxxx:yyyy:zzzz:aa40%11\] "ha supervisor logs --tail 100"
If TcpTestSucceeded = False (Core not listening) try:
ssh -p 22222 root@\[fe80::xxxx:yyyy:zzzz:aa40%11\] "ha core start"
ssh -p 22222 root@\[fe80::xxxx:yyyy:zzzz:aa40%11\] "ha core logs --tail 200"
Last resort (clean system reboot if all else fails and you still have SSH access):
ssh -p 22222 root@\[fe80::xxxx:yyyy:zzzz:aa40%11\] "ha host reboot"
Why: Ping proves host reachability; the port test shows if HA Core is accepting connections. Logs/restart recover Core; a clean host reboot is the safe final step (avoid power pulls).
- Prevent future IP conflicts (router)
Do one:
- Move the DHCP pool start to e.g. .25 (or higher), or
- Add an exclusion/reservation for 192.168.1.XX
Why: Ensures the router never leases .20 to any other device.
Observe that your Yellow OS is now modified to ignore your DHCP server.
When we ran:
ha network update end0 --ipv4-method static --ipv4-address 192.168.1.XX/24 --ipv4-gateway 192.168.1.1 --ipv4-nameserver 192.168.1.1
we told HAOS/NetworkManager to stop running DHCPv4 on end0 and to always configure 192.168.1.XX with the specified gateway/DNS at boot. So:
- It does not contact your DHCP server for an address or options.
- It will still do normal ARP/ND on the LAN, but no DHCP negotiation.
- Your router’s DHCP pool/reservations won’t affect the Yellow’s IP anymore.
- Upside: deterministic address every time.
- Requirement: ensure the DHCP pool excludes .20 (or set a router reservation/exclusion) to avoid conflicts.
If you ever/later wish to reverse/undo everything, here’s the clean, reversible way to put IPv4 back on DHCP for your Yellow (HAOS), using only the host-SSH + ha CLI.
- SSH to the Yellow (host SSH over IPv6)
ssh -p 22222 root@\[fe80::YOUR:LL:ADDR%IFINDEX\]
- Switch the wired NIC back to DHCPv4
- Replace end0 with your interface name if different (check with ha network info).
ha network update end0 --ipv4-method auto
- (Optional) Re-enable IPv6 auto if you had disabled it earlier
ha network update end0 --ipv6-method auto
- Verify the change & confirm a lease arrived
ha network info
You should see, under end0 → ipv4:
-
method: auto
-
address: 192.168.1.x/24 (assigned by your router)
-
ready: true
- If no IPv4 shows up after ~60–90s, bounce the connection
ha network reload
ha network info
(If still no lease, check your router’s DHCP pool and any reservations/exclusions; ensure .20 (or whatever you use) isn’t reserved for someone else.)
- Adjust your router so DHCP can assign an address
-
If you previously shrank the DHCP pool or excluded .20, either:
- Restore the original pool range, or
- Keep a reservation for the Yellow’s MAC to a specific DHCP IP you want it to get every time.
- (Optional) Clean reboot to confirm everything is persistent
ha host reboot
That’s it - after this, the Yellow will acquire IPv4 from DHCP automatically on every boot, as before.
This may of course fail if your original problem still exists.