@@ -29,6 +29,11 @@ metadata {
29
29
capability ' PushableButton'
30
30
capability ' Consumable' // consumableStatus - ENUM ['missing', 'order', 'maintenance_required', 'good', 'replace']
31
31
32
+ attribute ' assignee' , ' STRING' // To be used for auto-off 'chore switches'
33
+ command ' setAssignee'
34
+ command ' setMaintenanceRequired'
35
+ command ' setMaintenanceRequiredIfSwitchOff'
36
+
32
37
}
33
38
preferences() {
34
39
section(){
@@ -89,18 +94,42 @@ void on() {
89
94
sendEvent(name : ' switch' , value : ' on' )
90
95
push(1 )
91
96
setConsumableStatus(' good' )
97
+ setAssignee(' unassigned' )
98
+ parent?. update()
92
99
}
93
100
94
101
void off () {
95
102
unschedule(' autoOff' )
96
103
sendEvent(name : ' switch' , value : ' off' )
104
+ parent?. update()
97
105
}
98
106
99
107
void setConsumableStatus (String status ) {
100
108
if (status in [' missing' , ' order' , ' maintenance_required' , ' good' , ' replace' ]) {
101
109
sendEvent(name : ' consumableStatus' , value : status)
110
+ parent?. update()
102
111
}
103
112
}
104
113
114
+ void setAssignee (String assigneeName ) {
115
+ sendEvent(name : ' assignee' , value : assigneeName)
116
+ parent?. update()
117
+ }
118
+
105
119
void autoOff () { off() }
106
- void push (buttonNumber ) { sendEvent(name : ' pushed' , value : buttonNumber, isStateChange :true ) }
120
+ void push (buttonNumber ) {
121
+ sendEvent(name : ' pushed' , value : buttonNumber, isStateChange :true )
122
+ parent?. update()
123
+ }
124
+
125
+ void setMaintenanceRequired () {
126
+ off()
127
+ setConsumableStatus(' maintenance_required' )
128
+ }
129
+
130
+ void setMaintenanceRequiredIfSwitchOff () {
131
+ if (device. currentValue(' switch' ) == ' off' ) {
132
+ setConsumableStatus(' maintenance_required' )
133
+ setAssignee(' unassigned' )
134
+ }
135
+ }
0 commit comments