Unterschied setreading und set?

Begonnen von Grinsekatze, 09 Juli 2016, 13:50:44

Vorheriges Thema - Nächstes Thema

Grinsekatze

Ich habe mal eine sehr grundlegende, und vermutlich einfache Frage, da ich in diversen Anleitungen im Netz immer wieder beides finde.

Was ist eigentlich der Unterschied zwischen set und setreading?

Mit set verändert man ja nur den state  -richtig?
Mit setreading kann man auch weitere Readings ändern.

Was ist jetzt jedoch besser, (etwa in diesem Beispiel - beides geht): fhem("setreading Licht state $EVENT ;; setreading Licht power $EVENT")\

Entschuldigt, wenn die Frage zu simpel ist, doch das hab ich mich schon mehrfach gefragt und noch keine wirkliche Antwort gefunden - etwa was bevorzugt wird.

Ellert

Das ist in der Befehlsreferenz sehr schön beschrieben: http://fhem.de/commandref_DE.html einfach auf die Begriffe klicken  ;)

betateilchen

Mit "set" teilt man dem gesamten Device mit, etwas zu tun. Da können intern noch sehr viel andere Dinge passieren, die zum ordnungsgemäßen Betrieb des Gerätes notwendig sin.

Mit setreading wird ein beliebiger Wert in einem reading des devices gefüllt. Für mich ist setreading ein Kommanda, das eigentlich gar nicht für den Einsatz durch den Benutzer vorgesehen ist und für mich auch völlig kontraproduktiv ist, wenn man sich einmal vor Augen führt, was ein reading eigentlich ist: Es ist ein Zustand eines devices, der vom device selbst festgestellt und dokumentiert wurde.

"set" ist also ein Befehl an das device, etwas zu tun tun, wofür das device vorgesehen ist.

Beispiel: "set licht on" teilt dem device "licht" mit, alles zu tun, was notwendig ist, das Licht anzuschalten.

Mit "setreading licht state on" schreibst Du zwar "on" in den Status des device, das heißt aber noch lange nicht, dass die Lampe wirklich brennt. Denn das device selbst bekommt von einem "setreading" überhaupt nichts mit, damit wird lediglich von fhem selbst eine Variable mit einem anderen (möglicherweise völlig sinnlosen) Wert gefüllt.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Grinsekatze

Danke, das war eine sehr schöne Veranschaulichung und hat mir sehr weiter geholfen.

In der Regel arbeite ich mit set - nur bei Dummys manchmal mit setreading.

betateilchen

Es gibt eigentlich auch bei dummys keinen Grund, mit setreading zu arbeiten.

Zumindest nicht, wenn man die commandref Dokumentation zu dummy gelesen und verstanden hat.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!