NEWS
Im Script einen Sensor verlinken
-
Moin,
ich greife über Aliase auf meine Sensoren zu. Die Idee finde ich auch gut, wenn ein Sensor ausgetauscht wird. Wenn ich aber ein Script für einen anderen Raum nutzen möchte, kopiere ich es. Dumm ist nur, dass ich im kompletten Script die Sensoren ändern muss. Gibt es eine Möglichkeit in dem Script einen Link zu erstellen, sodass nur dieser gendert werden muss?
VG
Krodon
-
@krodon sagte in Im Script einen Sensor verlinken:
Moin,
ich greife über Aliase auf meine Sensoren zu. Die Idee finde ich auch gut, wenn ein Sensor ausgetauscht wird. Wenn ich aber ein Script für einen anderen Raum nutzen möchte, kopiere ich es. Dumm ist nur, dass ich im kompletten Script die Sensoren ändern muss. Gibt es eine Möglichkeit in dem Script einen Link zu erstellen, sodass nur dieser gendert werden muss?
VG
Krodon
Latuernich
in JS:
const idStr = 'alias.0.channel.device.state' on ({id: idStr, change:ne}, ...
in Blockly:
A.
Nachtrag: ObjektID in Blockly ist eine von mir so benannte Variable. Da darf auch Hugo, Horst oder Sensor stehen -
Mit einer Variable ?! .. oder ich verstehe die Frage falsch.
Du kannst am Anfang vom Script eine Variable setzen und sie im Script dann nutzen.
Müsste es so nicht klappen?
@Asgothian seine Lösung ist wohl besser, weil da nicht auf den Wert sondern auf die ObjektID gegangen wird.
-
@skvarel sagte in Im Script einen Sensor verlinken:
Mit einer Variable ?! .. oder ich verstehe die Frage falsch.
Du kannst am Anfang vom Script eine Variable setzen und sie im Script dann nutzen
Guter Ansatz, falscher Block
- so kann er zwar den Wert dynamisch setzen, nicht aber Trigger o.ä. dynamisch durch Austauschen eines Bausteins anpassen. Da besser den Objet ID Block nehmen, nicht den Wert von...
-
@asgothian sagte in Im Script einen Sensor verlinken:
@skvarel sagte in Im Script einen Sensor verlinken:
Mit einer Variable ?! .. oder ich verstehe die Frage falsch.
Du kannst am Anfang vom Script eine Variable setzen und sie im Script dann nutzen
Guter Ansatz, falscher Block
- so kann er zwar den Wert dynamisch setzen, nicht aber Trigger o.ä. dynamisch durch Austauschen eines Bausteins anpassen. Da besser den Objet ID Block nehmen, nicht den Wert von...
.. Ich habe meinen Beitrag editiert. Du hast natürlich Recht!
-
@asgothian .. mache ich ja sogar mit der ObjektID bei meinen Heizungen
.
-
@krodon sagte: greife über Aliase auf meine Sensoren zu.
Wie sieht die ID-Struktur unter "alias.0" aus?
EDIT: In diesen beiden Blöcken (+ Trigger) kann man konstruierte ID-Strings verwenden:
Beispiel:
-
@paul53 meine Aliase sehen so aus:
Muss ich den "Link" in jedem Trigger in dem Script einbauen oder kann ich ihn "Global" einbauen? (Außerhalb von einem Trigger)
VG
Krodon
-
@krodon sagte: meine Aliase sehen so aus:
Etwas ungünstig, da der Raum zweimal in der ID vorhanden ist:
"alias.0.Bad.Licht.Licht_Bad.ON_ACTUAL"@krodon sagte in Im Script einen Sensor verlinken:
Muss ich den "Link" in jedem Trigger in dem Script einbauen
Du musst die Skripte so aufbauen, dass nur Blöcke mit konstruierter ID verwendet werden. Dann muss nach dem Kopieren nur noch (ganz oben) der Raum geändert werden.
-
@paul53 said in Im Script einen Sensor verlinken:
"alias.0.Bad.Licht.Licht_Bad.ON_ACTUAL"
Hallo Paul,
"alias.0.Bad.Licht.Licht_Decke.ON_ACTUAL" wäre dann O.K?
Muss ich die oberen 2 Zeilen vor jeden Trigger setzen?
VG
Krodon
-
@krodon sagte: Muss ich die oberen 2 Zeilen vor jeden Trigger setzen?
Sie müssen nur einmal im Skript außerhalb von Triggern gesetzt werden, damit die Variablen beim Skriptstart initialisiert werden.
@krodon sagte in Im Script einen Sensor verlinken:
"alias.0.Bad.Licht.Licht_Decke.ON_ACTUAL" wäre dann O.K?
Ist besser, da der Raum nur einmal vorkommt:
-
Du kannst überall wo Blockly die heller dargestellten Kästen zur Auswahl des Datenpunktes hat, auch ein Textfeld draufziehen - und damit auch Variablen und den Text darf man auchzusammenbauen:
Wenn ich den Echo austausche muss ich nur oben bei der Variablen den Stammpfad ändern.Das war jetzt aus dem erstbesten Blockly was ich bei mir gefunden habe, das mach ich in quasi allen Skripten so, nicht nur Blockly.
-
-
-
@krodon sagte: wie steuere ich eine Variable?
Mit dem Block "schreibe". Eigene Datenpunkte aktualisiert man.
Weshalb verwendest du nicht die Alias-DP?
-
@paul53 said in Im Script einen Sensor verlinken:
Mit dem Block "schreibe". Eigene Datenpunkte aktualisiert man.
Obwohl ich schon lange dabei bin, bin ich ein Anfänger, wie mache ich dies?Weshalb verwendest du nicht die Alias-DP?
Ich habe es mir überlegt, ich bin mir nicht sicher, ob ich dies konsequent umsetzen kann. Ich werde dies berücksichtigen und habe es vor, später zu machen. Es sind dann ja nur Blöcke, die man einsetzen kann.VG
Krodon
-
@krodon sagte: wie mache ich dies?
-
@paul53
Hallo Paul,ich habe Probleme den 2. Block bei mir zu finden. Ich bekomme nur diese angezeigt;
Wo wird dieser Block dann eingefügt?
VG
Krodon
-
@krodon sagte: ich habe Probleme den 2. Block bei mir zu finden.
Das ist der gleiche Block wie der erste, aber per rechter Maustaste über dem Block auf "interne Eingänge" umgestellt.
-
@paul53 herzlichen Dank!
Ich habe den Block nun erzeigt, kann ihn aber nicht unter 0_userdata.0 finden