Re:The smart home is flailing as a concept
by OJFord on Friday August 06, 2021 @04:33PM
(#28092418)
The closest you can get with '2 state' (by which you mean SPST - single pole single throw; SPDT is the standard way to achieve this but is usually still '2 state', it's just that 'off' (if you like) has a terminal too) switches is to add a 'don't care' state, and accept that first deliberate ('do care') switch wins.
To do this you have a live rail and a switched live rail, and two SPST each end: one switch SL hot or not; the other to break its connection to the light. Open the latter for 'off', close both for 'on', close break & open SL for 'don't care'. (Then in the 'don't care' state, SL is hot iff switched on the other end, and if so is also closed through to the light.)
Not legal, not (that I can imagine) desirable!
Proving it is actually simple if you continue your Boolean line of thought: you can't build XOR without an inverter; an SPST switch is only a sort of 'half inverter', a mux between '0' and its input. Since it can never give you '1' from '0' input, you need a schematic for your XOR where each constituent truth table in isolation has '0' out for its '0;0' in line. Which can't be done, because clearly then you could never get '0;0=>1' overall.
To do this you have a live rail and a switched live rail, and two SPST each end: one switch SL hot or not; the other to break its connection to the light. Open the latter for 'off', close both for 'on', close break & open SL for 'don't care'. (Then in the 'don't care' state, SL is hot iff switched on the other end, and if so is also closed through to the light.)
Not legal, not (that I can imagine) desirable!
Proving it is actually simple if you continue your Boolean line of thought: you can't build XOR without an inverter; an SPST switch is only a sort of 'half inverter', a mux between '0' and its input. Since it can never give you '1' from '0' input, you need a schematic for your XOR where each constituent truth table in isolation has '0' out for its '0;0' in line. Which can't be done, because clearly then you could never get '0;0=>1' overall.