NEWS
Blockly: Unterschied zwischen "steuere" und "aktualisiere"?
-
Hallo,
im Forum gibt es offenbar öfter mal Irritationen was den Unterschied zwischen "steuere" und "aktualisiere" bei Blockly angeht. Mal scheint das eine zu klappen, mal das andere. Ein Muster konnte ich nicht erkennen, und eine wirkliche Doku über die beiden Punkte habe ich auch nicht gefunden.
Kann jemand den Unterschied erklären?
Danke
Viele Grüße
Christian
-
Man benutzt "steuere" wenn man ein Gerät steuern will - also ein Licht schalten oder so was. Bei reinen Daten-States wo nichts passiert außer das ein Wert aktualisiert wird, nutzt man "aktualisiere". Da darf man aber sich nicht erwarten das irgendwas passiert
Und das ist die Idee und das sollte durchgängig so sein.
Dahinter steckt das Thema "acknowledge" flag. Ack=true (entspricht aktualisiere) bezeichnet einen finalen wert. Ack=false (steuere) bedeutet "liebes device, setze mal diesen Wert" …. das Devise reagiert darauf, steuert entsprechend und setzt den Wert neu mit ack=true als neuen "vom device bestätigten wert".
-
Ah okay, danke. Wenn man also zb zwei Variablen miteinander verrechnet haben möchte, nutzt man "aktualisiere" und wenn man einen Aktor einschalten will schickt man dem ein "steuere 1",richtig?
Das mit dem "Ack" habe ich allerdings noch nicht verstanden, sorry. Heißt das, dass der empfangende Datenpunkt das Setzen des neuen Werts bestätigt ("bidirektional" sozusagen), und dass ein reiner Datenpunkt halt nichts zurück bestätigen kann weil er quasi zu "dumm" ist?
-
Beides korrekt
Zurückbestätigen kann nur ein Adapter bzw ein JavaScript was es richtig macht
-
Perfekt, vielen Dank!
-
Das funktioniert zumindest bei meinem Setup (ioBroker 3.5.10/piVCCU 3.41.7) nicht…
Ich habe gerade Stunden damit verbracht eine Systemvariable über ein Script auf der CCU zu aktualisieren.
Natürlich habe ich es zuerst über die Funktion "Aktualisiere" (Code: setState("hm-rega.0.1687", true, true); ) versucht.
Der Datenkonten wurde auch entsprechend im ioBroker aktualisiert, nur es erfolgte kein Update der Variable auf der CCU.
Ein manuelles Setzen des Wertes über die "Objekte" hatte hingegen sofort funktioniert.
Benutze ich die Funktion "Steuere" ( JSCode: setState("hm-rega.0.1687", true); ) funktionierte das Setzen der Systemvariable sofort.