I still don't understand what any of this does for me. I add and remove devices to my automation system all the time without messing with existing devices. Commands vs state is irrelevant to me, the automation system knows the state of all of the devices, it changes the state by sending commands and monitors the state by receiving commands. How will some new system provide a tangible improvement over what is already available and in widespread use?
There is a small improvement from your point of view.
You pay for having a supervisor system (even if it's free and open source) because you have to run this software h24 24/7 on hardware that draws energy.
The yearly increase of electric energy bill is small, but there is.
uAntHill is like your supervisor system.
Your modem router may run its software because it needs only a UART to send and receive bytes.
You obviously have to modify your modem router firmware, so it's not a task for a housewife until, some day (I hope) modem routers have it built-in.
You may not agree with this example.
I therefore tell you a thing that has been feasible since twelve years ago and that your system could not do: lamp configuration without any computer or smartphone or software.
As I said regarding address assignment procedure, uAnts have got a button.
After a uAnt has got its address, this button may be used to configure outputs activation.
If you keep pressed this button long enough, uAnt enters in "output configuration" mode.
You select the output to configure by turning the potentiometer which is usually used to lock uAnt configuration.
Once an output is selected, you walk to the uAnt whose state must control that output and press shortly the button to put the latter uAnt in "stimulation mode".
When a uAnt is in stimulation mode, a digital input change toggles pairing mode, i.e. a bit in uAnt state say "I control you" or "I don't control you".
After a flashing led confirms that stimulation has been broadcasted, the "programming" button may be pushed again to resume normal operation.
If there are more controlling uAnts, for instance when a lamp must be switched on/off by two or more points, you repeat the above simple steps.
Finally you walk to the uAnt in "output configuration" mode and push the "programming" button.
From then on, when you push one of the controlling buttons, the lamp is switched on or off.
"Under the skin", this is simply obtained by how state byte 0 is defined.
This byte always encode 4 digital states as pairs of bit.
Pair 00 means "I don't control you"
Pair 01 means "I'm pushed"
Pair 10 means "I'm not pushed"
Pair 11 means "I control you"
When a uAnt is in normal mode, it discards digital pairs 00 and 11, so the other uAnts which use that state bit are unaffected when a uAnt is in "stimulation mode".
On the contrary, when a uAnt is in "output configuration" mode discards digital pairs 01 and 10. Since uAntHill says which address is now speaking, the uAnt in "output configuration" mode can manage the list of its controlling states.