diff --git a/libnymea/interfaces/extendedclosable.json b/libnymea/interfaces/extendedclosable.json index c6c72663..d5ca5085 100644 --- a/libnymea/interfaces/extendedclosable.json +++ b/libnymea/interfaces/extendedclosable.json @@ -10,7 +10,8 @@ "name": "percentage", "type": "int", "minimumValue": 0, - "maximumValue": 100 + "maximumValue": 100, + "writable": true } ] } diff --git a/libnymea/interfaces/extendedstatefulgaragedoor.json b/libnymea/interfaces/extendedstatefulgaragedoor.json new file mode 100644 index 00000000..f618bd11 --- /dev/null +++ b/libnymea/interfaces/extendedstatefulgaragedoor.json @@ -0,0 +1,11 @@ +{ + "description": "A garage door which can be controlled like an extended closable, that is, by reporting and taking a percentage of the position", + "extends": ["garagedoor", "extendedclosable"], + "states": [ + { + "name": "state", + "type": "QString", + "allowedValues": ["open", "closed", "opening", "closing", "intermediate"] + } + ] +} diff --git a/libnymea/interfaces/garagedoor.json b/libnymea/interfaces/garagedoor.json new file mode 100644 index 00000000..9e34542d --- /dev/null +++ b/libnymea/interfaces/garagedoor.json @@ -0,0 +1,3 @@ +{ + "description": "The base for all garage door interfaces. Can be used by the client to filter for garage doors in the system." +} diff --git a/libnymea/interfaces/garagegate.json b/libnymea/interfaces/garagegate.json index 615104c2..e692e7e9 100644 --- a/libnymea/interfaces/garagegate.json +++ b/libnymea/interfaces/garagegate.json @@ -1,5 +1,6 @@ { - "extends": "closable", + "deprecated": "Use statefulgaragedoor instead", + "extends": ["garagedoor", "closable"], "states": [ { "name": "state", diff --git a/libnymea/interfaces/impulsegaragedoor.json b/libnymea/interfaces/impulsegaragedoor.json new file mode 100644 index 00000000..15155c3c --- /dev/null +++ b/libnymea/interfaces/impulsegaragedoor.json @@ -0,0 +1,9 @@ +{ + "extends": "garagedoor", + "description": "This interface is for the simplest form of garage doors which can be controlled only via an impulse. Triggering the impulse will start moving the door, triggering it again will stop the movement. Triggering it yet another time will start movement in the reverse direction. Note that there is no feedback channel on such devices. The system has no chance of knowing the current state this device is actually in.", + "actions": [ + { + "name": "triggerImpulse" + } + ] +} diff --git a/libnymea/interfaces/statefulgaragedoor.json b/libnymea/interfaces/statefulgaragedoor.json new file mode 100644 index 00000000..cd0c9ecb --- /dev/null +++ b/libnymea/interfaces/statefulgaragedoor.json @@ -0,0 +1,11 @@ +{ + "description": "A garagedoor which can be controller like a closable, with open and close actions. It can report whether it's opened or closed or standing still something in between (intermediate position) as well as reporting that it's moving (opening/closing).", + "extends": ["garagedoor", "closable"], + "states": [ + { + "name": "state", + "type": "QString", + "allowedValues": ["open", "closed", "opening", "closing", "intermediate"] + } + ] +}