2015-03-11 4 views
6

In einer Datei rules in openHAB kann ich postUpdate und sendCommand ausführen. Was ist der Unterschied?Was ist der Unterschied zwischen postUpdate und sendCommand in openHAB

Ich bemerkte, dass, wenn ich postUpdate(zwaveLamp1, ON) verwende, nur der Wert geändert wird, keine Aktionen ausgeführt werden - das Licht bleibt dunkel. sendCommand(zwaveLamp1, ON) führt die gebundene Aktion aus und schaltet das Licht an und das Element wird aktualisiert.

Was ist der Anwendungsfall von postUpdate? Wozu ist es gut?

Antwort

0

Ja, richtig aus meiner Sicht. postUpdate arbeitet "intern" auf dem Artikel, sendCommand fungiert als 'Befehl' zum Peripheriegerät/Interface. marco

0

Sie können ein Schalterelement an nichts binden; Nehmen wir an, Sie möchten einen Switch item EmailToggle machen. Wenn Sie den Schalter auf Ihrer Sitemap aktivieren, können Sie E-Mails ein- und ausschalten; Nach dem Start können Sie das Update durchführen und es von unitialisiert auf OFF oder ON setzen. Die Umschaltfunktion kann dann verwendet werden, um zu bestimmen, ob E-Mails basierend auf einer Regel ausgeführt werden sollen.

Ich habe diese Arbeit gesehen und ich habe es nicht funktioniert gesehen. Scheint fehlerhaft.

1

Befehle sind diskret, während Zustände flüchtiger erscheinen. Das heißt, wenn Sie eine Regel ausführen, die von "Item X received command" ausgelöst wird, können Sie die Variable "receptedCommand" in der Regel verwenden, um etwas auszuführen, und die Regel wird für jeden Befehl ausgelöst. Sie müssen jedoch den aktuellen Status des Elements lesen oder previousState für den vorherigen Status verwenden.

Ich habe für einen Artikel gefunden, der seinen Status sehr aktualisiert, der für eine Änderung ausgelöst wird, aber bis Sie den Status des Artikels gelesen haben, kann es sich wieder geändert haben; Es wird immer der aktuelle Wert zurückgegeben. Genau so sollte es sein. Wenn Sie den Status jedoch als eine Pseudoeingangswarteschlange von MQTT oder einer externen Quelle verwenden, gehen die Nachrichten verloren. Wenn sie als Befehle kommen, wirst du nicht.

Verwandte Themen