Samsung Groovy SmartThings のインフラストラクチャを実装したいと考えています。もちろん、インフラストラクチャの主要な部分は、対応するメソッドを使用して各デバイスに異なるクラスを実装することです。たとえば、ロックのデバイスの場合、メソッド lock() および unlock() を持つロック クラスがあると仮定しました。ここでの問題は、Groovy にある SmartThings アプリケーションの 1 つにコードのこの部分があることです。
def presence(evt)
{
if (evt.value == "present") {
//Somecode
lock1.unlock()
}
else {
//Somecode
lock1.lock()
}
}
おそらく、lock1 はロック クラスのオブジェクトであり、lock() と unlock() はそのクラスのメソッドです。ここに問題があります: lock1[0].unlock() コマンドを使用するとドアロック番号 #0 がロック解除されますが、lock1.unlock() コマンドを使用するとすべてのドアロックがロック解除されます。
ここでの質問は、クラスがどのように作成されるかということです。lock1 がオブジェクトのリストである場合、lock1.unlock() のようなコマンドを使用するにはどうすればよいでしょうか。
ここでのポイントは、両方のオブジェクトが同じ名前の lock1 を持つ必要があり、両方のメソッドが lock() という名前の同じメソッドであるということです。
前もって感謝します。