NEWS
[super gelöst] Unterschied Datenpunkt, Variable, Zustand?
-
Es ist eine absolute Anfängerfrage, aber ich komme nach zwei Stunden suchen nicht weiter.
Was genau ist der Unterschied zwischen einem Datenpunkt, einer Variablen und einem erzeugten Zustand?
Hintergrund meiner Frage ist, daß ich meine Rolladensteuerung von der CCU auf iobroker mit Blockly umziehen will. Auf der CCU habe ich bisher Systemvariablem verwendet und dann bspw. abgefragt, ob die Systemvariable "Rollo-Automatik" auf wahr gesetzt ist, um dann bei vorliegen anderer Bedingungen die Rollos automatisch hoch und runter zu fahren. Eine andere Systemvariable war "Rollo-Schatten-setzen". Diese ging auf true, wenn es draussen wärmer als 24°C war und der Sonnensensor wahr war.
Irgendwie sehe ich nun den Wald vor lauter Bäumen in blockly nicht.
Wann lege ich mir im Reiter Objekte einen Datenpunkt per Hand an, den ich dann in blockly bei Eintreten von bestimmten Bedingungen auf true/fals setze?
Wann und Warum nutze ich Variablen?
Was hat es mit dem "Zustand erzeugen" Blockly auf sich?
Ein ratloser Andreas
-
Was genau ist der Unterschied zwischen einem Datenpunkt, einer Variablen und einem erzeugten Zustand? `
Ein Datenpunkt besteht aus einem Objekt (statischer Teil), zu sehen im Reiter "Objekte" und einem Zustand (dynamischer Teil: https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md#states). Eine Variable existiert nur innerhalb eines Skriptes.
@weimaraner:Was hat es mit dem "Zustand erzeugen" Blockly auf sich? `
Richtig wäre eigentlich "Datenpunkt erzeugen": Es wird ein Datenpunkt-Objekt under der aktiven Javascript-Instanz (javascript.0) erzeugt: Name "xyz" bildet Objekt-ID "javascript.0.xyz".
@weimaraner:Auf der CCU habe ich bisher Systemvariablem verwendet `
Das sind ebenfalls (virtuelle) Datenpunkte so wie die unter "javascript.0" erstellten Datenpunkte.
-
Danke Paul!
Super erklärt - mir fielen die richtigen Worte nicht ein!
Und ohne die wäre es noch verwirrender gewesen.
Richtig wäre eigentlich "Datenpunkt erzeugen" `
Wäre was für ein Issue oder einen PRGruß
Rainer
-
Vielen Dank für die Erklärung. Das "Zustand erzeugen" blockly hat mich gänzlich verwirrt.
D.h., ob ich einen Datenpunkt in blockly oder im Reiter Objekte neu erzeuge, macht keinen Unterschied'?
Eine Variable ist also ähnlich einem Datenpunkt und kann einen Zustand haben, exisiert aber nur in dem Skript, in dem ich es gerade brauche?
Wenn ich also eine gleiche Variable in mehreren Blockly brauche, dann kommt "global" ins Spiel. Richtig?
-
D.h., ob ich einen Datenpunkt in blockly oder im Reiter Objekte neu erzeuge, macht keinen Unterschied'? `
Im Prinzip nicht, außer dass Du in Blockly auf die Javascript-Instanz eingeschränkt bist. Außerdem kannst Du bei manueller Erstellung im Reiter "Objekte" gleich sinnvolle Objekteigenschaften (z.B. "Einheit", "min", "max", …) angeben.
@weimaraner:Eine Variable ist also ähnlich einem Datenpunkt und kann einen Zustand haben, `
Nein, eine Variable kann nur einen Wert haben, der auch ein Objekt (im Sinne von Javascript - nicht von ioBroker) sein kann.
@weimaraner:Wenn ich also eine gleiche Variable in mehreren Blockly brauche, dann kommt "global" ins Spiel. Richtig? `
Nein, "global" ist nur für eigene, häufig verwendete Funktionen gedacht. Die Kommunikation zwischen Skripten muss über Datenpunkte erfolgen.
EDIT:
@Homoran:Wäre was für ein Issue oder einen PR `
PR ist erfolgt.
-
dann kommt "global" ins Spiel. `
nein!globale Skripte werden vor JEDEM Skript ausgeführt
Wenn ich also eine gleiche Variable in mehreren Blockly brauche `
Dann erstellst du dir einen Datenpunkt (analog zu einer Systemvariable bei HM) und befüllst diesen Datenpunkt mit dem gewünschten Zustand.Alle Skripte (und auch z.B. vis) können dann auf diesen Datenpunkt zugreifen.
Gruß
Rainer
-
Jungs! Ihr seid Super!!!!
Vielen Dank für die erschöpfenden Antworten und die Geduld.
Grüße Andreas
-
Ergänzende Erläuterung für Blockly-Programmierer anhand der Eigenschaften des Trigger-Datenpunktes:
.Die Objekt ID ist quasi die "Adresse" des Datenpunktes. Die folgenden Eigenschaften sind statisch. Die letzten 12 Eigenschaften (ab Wert) bilden den Zustand des Datenpunktes.