Hey Fred11,
this may practically work because a computer (and thus the Onefinity Controller) will not change its link-local address once it has automatically chosen one, except if it is already in use by another host on bootup (or until the next time Onefinity tells you to flash the entire system ). But by principle, this is not really a static address, since you have no guarantee that this IP address will stay.
This would only be the case if you use the static configuration example above or, if you have a DHCP server in your LAN, you configure the DHCP server in a way that it assigns a static address.
But I still find it surprising that connecting the Onefinity Controller to a Windows machine with the aim of automatically setting up a zeroconf configuration does neither allow to discover the address of the Onefinity Controller nor does it work by Name Service Discovery by addressing it with “onefinity.local”. Does this really only work on Linux and Macs?
When a computer wishes to give itself an IPv4 link-local address, it selects one based on a pseudo-random number generator from the link-local address range 169.254.1.0 to 169.254.254.255 . But before the computer can really use the address, it has to make sure that this address is not already in use by another computer because using an address already in use would be disruptive for the other computer. Therefore, before using a link-local address, according to RFC 3927, a computer sends ARP probes in which it claims the chosen address.
These ARP probes are broadcast by the Onefinity Controller and received by neighbor computers, which is why usually you can find out the IP address of the Onefinity Controller by simply typing “arp -a” on your neighbor computer (note that the addressing with “onefinity.local” works too)
So on my (linux) desktop computers, before I connect the Onefinity Controller, it it shows:
root:~# arp -a
# [...some other known hosts in the ARP table...]
and after connecting the Onefinity Controller:
root:~# arp -a
# [...some other known hosts in the ARP table...]
onefinity.local (169.254.234.237) at ■■:■■:■■:■■:■■:■■ [ether] on enx■■■■■■■■■■■■
So it works like Onefinity describes it in
at least on the (linux) computers I use.
There seems to be a tool like “arp” on Windows too, but when I connect the Onefinity Controller to a Windows notebook and do “arp -a” on it, it just tells the local interfaces, but it seems it did not register the ARP probes sent by the Onefinity Controller, or at least it does not show them on the ARP table. Does some windows user know why?
As I mentioned before, I extremely rarely use Windows computers and don’t know why neither Name Service Discovery nor “arp -a” do work on Windows for discovering the Onefinity Controller.
EDIT: And if you look at the first and the 13th post of this thread, it seems it worked on windows xp! Why was it not reproducible on the higher windows versions computers Fred11 and I tried?