I think I have a seldom case that is not covered by the webthing schemas.
I made my own electronic device so this case might be really rare. The fact that software breaks to fast is a real problem of all digital controlled devices I have met so far. My device has a workaround that lets me control the device manually in any case.
You can imagine a stairway, it has a switch on each floor it passes. Every switch is able to turn on or off the light. Its called a multiway switch.
What I have done is to integrate that to a circuit that lets me control the power of that device as if it would be a normal power switch combined with a software switch. And therefore is not relying on software but can be enhanced with.
It looks like this Block schematic:
I think the Electronic schematic is much easier to read:
Now I made a truth table for it:
As you can see, the Digital Switch (what I would like to see in gateway) is not correlating to the Device State.
Actually none of my states correlate in all cases to the Device state.
This leads me to the assumption that I need a Property where UI state and switch state can be set manually.
Did I miss something?
I would request something like this:
manaulModeProperty : A manualy set Property for decoupled Thing Status and Switch. type: string, enum: ["on", "off","switchOn","switchOff"]
It then makes sense to make all Basic UI Properties available, like a manualBooleanProperty as well as a manualOpenProperty and manualPushedProperty.
Maybe a hiddenOnOffProperty works for all those different options in one? So I can have a not displayed but persistent switch that syncs the OnOffProperty to the right UI and Switchstate.