I like the idea that everything be represented by a floating number ranging from 0 to 1 so as to ensure compatibility. However, I am not sure how we deal with I/O points with multiple modes. By “multiple modes”, I mean the I/O point is neither continuous (brightness), nor digital-alike (switch), but rather in a discrete manner.
For example, a car mirror is usually controlled by a setting button, which shows the left or right mirror to be adjusted. In this case, it may have three modes: left, right, and neutral.
Taking the car mirror example, if we link this button to a light bulb, it won’t work because the nature of these two objects are not aligned in an intuitive way. User won’t know what left means. Is it gonna turn the light on, or off?
One possible solution would be we let manufacturers decide what I/O points should be. If it is not easy for the user to intuitively find out what value this I/O point has, then this button shouldn’t become an I/O point. Problem solved.
Another solution is we add another communication protocol which allows discrete modes of an I/O point.
The latter certainly adds complexity to the system, but the former lacks of flexibility. Which should be the right way to go?
The other problem I can foresee is when a property of an object is determined by a group of factors, such as the color of the light which is determined by RBG values (unsure), how do we design this property to be an I/O point so that it can be linked to or controlled by other I/O points, while other typical I/O points only have one floating value?
Not sure if I make myself clear. I’m sure you guys have thought about these kinds of questions.